+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
-* Copyright (C) 2010-2011, International Business Machines
+* Copyright (C) 2010-2012, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
* file name: bytestriebuilder.cpp
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
public:
// Use compiler's default constructor, initializes nothing.
- void setTo(const StringPiece &s, int32_t val, CharString &strings, UErrorCode &errorCode);
+ void setTo(StringPiece s, int32_t val, CharString &strings, UErrorCode &errorCode);
StringPiece getString(const CharString &strings) const {
int32_t offset=stringOffset;
};
void
-BytesTrieElement::setTo(const StringPiece &s, int32_t val,
+BytesTrieElement::setTo(StringPiece s, int32_t val,
CharString &strings, UErrorCode &errorCode) {
if(U_FAILURE(errorCode)) {
return;
}
BytesTrieBuilder &
-BytesTrieBuilder::add(const StringPiece &s, int32_t value, UErrorCode &errorCode) {
+BytesTrieBuilder::add(StringPiece s, int32_t value, UErrorCode &errorCode) {
if(U_FAILURE(errorCode)) {
return *this;
}
return *this; // error instead of dereferencing null
}
if(elementsLength>0) {
- uprv_memcpy(newElements, elements, elementsLength*sizeof(BytesTrieElement));
+ uprv_memcpy(newElements, elements, (size_t)elementsLength*sizeof(BytesTrieElement));
}
delete[] elements;
elements=newElements;
static int32_t U_CALLCONV
compareElementStrings(const void *context, const void *left, const void *right) {
- const CharString *strings=reinterpret_cast<const CharString *>(context);
- const BytesTrieElement *leftElement=reinterpret_cast<const BytesTrieElement *>(left);
- const BytesTrieElement *rightElement=reinterpret_cast<const BytesTrieElement *>(right);
+ const CharString *strings=static_cast<const CharString *>(context);
+ const BytesTrieElement *leftElement=static_cast<const BytesTrieElement *>(left);
+ const BytesTrieElement *rightElement=static_cast<const BytesTrieElement *>(right);
return leftElement->compareStringTo(*rightElement, *strings);
}
}
if(bytesCapacity<capacity) {
uprv_free(bytes);
- bytes=reinterpret_cast<char *>(uprv_malloc(capacity));
+ bytes=static_cast<char *>(uprv_malloc(capacity));
if(bytes==NULL) {
errorCode=U_MEMORY_ALLOCATION_ERROR;
bytesCapacity=0;
do {
newCapacity*=2;
} while(newCapacity<=length);
- char *newBytes=reinterpret_cast<char *>(uprv_malloc(newCapacity));
+ char *newBytes=static_cast<char *>(uprv_malloc(newCapacity));
if(newBytes==NULL) {
// unable to allocate memory
uprv_free(bytes);
int32_t length=1;
if(i<0 || i>0xffffff) {
intBytes[0]=(char)BytesTrie::kFiveByteValueLead;
- intBytes[1]=(char)(i>>24);
- intBytes[2]=(char)(i>>16);
- intBytes[3]=(char)(i>>8);
+ intBytes[1]=(char)((uint32_t)i>>24);
+ intBytes[2]=(char)((uint32_t)i>>16);
+ intBytes[3]=(char)((uint32_t)i>>8);
intBytes[4]=(char)i;
length=5;
// } else if(i<=BytesTrie::kMaxOneByteValue) {