// ------------------------------------- // Sets the limit and format arrays. void ChoiceFormat::setChoices( const double* limits, const UBool* closures, const UnicodeString* formats, int32_t cnt ) { if(limits == 0 || formats == 0) return; uprv_free(fChoiceLimits); uprv_free(fClosures); delete [] fChoiceFormats; // Note that the old arrays are deleted and this owns // the created array. fCount = cnt; fChoiceLimits = (double*) uprv_malloc( sizeof(double) * fCount); fClosures = (UBool*) uprv_malloc( sizeof(UBool) * fCount); fChoiceFormats = new UnicodeString[fCount]; uprv_arrayCopy(limits, fChoiceLimits, fCount); uprv_arrayCopy(formats, fChoiceFormats, fCount); if (closures != 0) { uprv_arrayCopy(closures, fClosures, fCount); } else { int32_t i; for (i=0; i<fCount; ++i) { fClosures[i] = FALSE; } } }
/** * Assignment operator. */ UppercaseTransliterator& UppercaseTransliterator::operator=( const UppercaseTransliterator& o) { Transliterator::operator=(o); loc = o.loc; uprv_arrayCopy(o.buffer, 0, this->buffer, 0, u_getMaxCaseExpansion()); return *this; }
/** * Copy constructor. */ UppercaseTransliterator::UppercaseTransliterator(const UppercaseTransliterator& o) : Transliterator(o), loc(o.loc), buffer(0) { buffer = (UChar *)uprv_malloc(u_getMaxCaseExpansion()*sizeof(buffer[0])); uprv_arrayCopy(o.buffer, 0, this->buffer, 0, u_getMaxCaseExpansion()); }
const ChoiceFormat & ChoiceFormat::operator=(const ChoiceFormat & that) { if (this != &that) { NumberFormat::operator=(that); fCount = that.fCount; uprv_free(fChoiceLimits); fChoiceLimits = NULL; uprv_free(fClosures); fClosures = NULL; delete [] fChoiceFormats; fChoiceFormats = NULL; fChoiceLimits = (double *) uprv_malloc(sizeof(double) * fCount); fClosures = (UBool *) uprv_malloc(sizeof(UBool) * fCount); fChoiceFormats = new UnicodeString[fCount]; // check for memory allocation error if (!fChoiceLimits || !fClosures || !fChoiceFormats) { if (fChoiceLimits) { uprv_free(fChoiceLimits); fChoiceLimits = NULL; } if (fClosures) { uprv_free(fClosures); fClosures = NULL; } if (fChoiceFormats) { delete[] fChoiceFormats; fChoiceFormats = NULL; } } else { uprv_arrayCopy(that.fChoiceLimits, fChoiceLimits, fCount); uprv_arrayCopy(that.fClosures, fClosures, fCount); uprv_arrayCopy(that.fChoiceFormats, fChoiceFormats, fCount); } } return *this; }
Calendar & Calendar::operator=(const Calendar &right) { if (this != &right) { uprv_arrayCopy(right.fFields, fFields, UCAL_FIELD_COUNT); uprv_arrayCopy(right.fIsSet, fIsSet, UCAL_FIELD_COUNT); uprv_arrayCopy(right.fStamp, fStamp, UCAL_FIELD_COUNT); fTime = right.fTime; fIsTimeSet = right.fIsTimeSet; fAreAllFieldsSet = right.fAreAllFieldsSet; fAreFieldsSet = right.fAreFieldsSet; fLenient = right.fLenient; delete fZone; fZone = right.fZone->clone(); fFirstDayOfWeek = right.fFirstDayOfWeek; fMinimalDaysInFirstWeek = right.fMinimalDaysInFirstWeek; fNextStamp = right.fNextStamp; } return *this; }
const ChoiceFormat& ChoiceFormat::operator=(const ChoiceFormat& that) { if (this != &that) { NumberFormat::operator=(that); fCount = that.fCount; uprv_free(fChoiceLimits); fChoiceLimits = NULL; uprv_free(fClosures); fClosures = NULL; delete [] fChoiceFormats; fChoiceFormats = NULL; fChoiceLimits = (double*) uprv_malloc( sizeof(double) * fCount); fClosures = (UBool*) uprv_malloc( sizeof(UBool) * fCount); fChoiceFormats = new UnicodeString[fCount]; uprv_arrayCopy(that.fChoiceLimits, fChoiceLimits, fCount); uprv_arrayCopy(that.fClosures, fClosures, fCount); uprv_arrayCopy(that.fChoiceFormats, fChoiceFormats, fCount); } return *this; }