U_NAMESPACE_BEGIN // TODO memory debugging provided inside uniset.cpp // could be made available here but probably obsolete with use of modern // memory leak checker tools #define _dbgct(me) //---------------------------------------------------------------- // Constructors &c //---------------------------------------------------------------- UnicodeSet::UnicodeSet(const UnicodeString& pattern, uint32_t options, const SymbolTable* symbols, UErrorCode& status) : len(0), capacity(START_EXTRA), list(0), bmpSet(0), buffer(0), bufferCapacity(0), patLen(0), pat(NULL), strings(NULL), stringSpan(NULL), fFlags(0) { if(U_SUCCESS(status)){ list = (UChar32*) uprv_malloc(sizeof(UChar32) * capacity); /* test for NULL */ if(list == NULL) { status = U_MEMORY_ALLOCATION_ERROR; }else{ allocateStrings(status); applyPattern(pattern, options, symbols, status); } } _dbgct(this); }
/** * Constructs a set from the given pattern, optionally ignoring * white space. See the class description for the syntax of the * pattern language. * @param pattern a string specifying what characters are in the set */ UnicodeSet::UnicodeSet(const UnicodeString& pattern, UErrorCode& status) : len(0), capacity(START_EXTRA), bufferCapacity(0), list(0), buffer(0), strings(0) { if(U_SUCCESS(status)){ list = (UChar32*) uprv_malloc(sizeof(UChar32) * capacity); /* test for NULL */ if(list == NULL) { status = U_MEMORY_ALLOCATION_ERROR; }else{ allocateStrings(); applyPattern(pattern, USET_IGNORE_SPACE, NULL, status); } } _dbgct(this); }
UnicodeSet::UnicodeSet(const UnicodeString& pattern, ParsePosition& pos, uint32_t options, const SymbolTable* symbols, UErrorCode& status) : len(0), capacity(START_EXTRA), bufferCapacity(0), list(0), buffer(0), strings(0) { if(U_SUCCESS(status)){ list = (UChar32*) uprv_malloc(sizeof(UChar32) * capacity); /* test for NULL */ if(list == NULL) { status = U_MEMORY_ALLOCATION_ERROR; }else{ allocateStrings(); applyPattern(pattern, pos, options, symbols, status); } } _dbgct(this); }