Handled data strings of length 0 in the iterator constructor.

X-SVN-Rev: 4810
This commit is contained in:
Syn Wee Quek 2001-05-25 21:58:49 +00:00
parent 6bc0d64b9d
commit f96945e15a

View File

@ -220,14 +220,21 @@ CollationElementIterator::CollationElementIterator(
return;
int32_t length = sourceText.length();
UChar *string = (UChar *)uprv_malloc(sizeof(UChar) * (length + 1));
/*
Using this constructor will prevent buffer from being removed when
string gets removed
*/
sourceText.extract(0, length, string);
// null terminate it
string[length] = 0;
UChar *string = NULL;
if (length > 0) {
string = (UChar *)uprv_malloc(sizeof(UChar) * length);
/*
Using this constructor will prevent buffer from being removed when
string gets removed
*/
sourceText.extract(0, length, string);
}
else {
string = (UChar *)uprv_malloc(sizeof(UChar));
// null terminate it
*string = 0;
}
m_data_ = ucol_openElements(order->ucollator, string, length, &status);
m_data_->isWritable = TRUE;