static void translate(UString::Rep*& location, const UCharBuffer& buf, unsigned hash) { UChar* d; UString::Rep* r = UString::Rep::createUninitialized(buf.length, d).releaseRef(); for (unsigned i = 0; i != buf.length; i++) d[i] = buf.s[i]; r->setHash(hash); location = r; }
static void translate(UString::Rep*& location, const char* c, unsigned hash) { size_t length = strlen(c); UChar* d; UString::Rep* r = UString::Rep::createUninitialized(length, d).releaseRef(); for (size_t i = 0; i != length; i++) d[i] = static_cast<unsigned char>(c[i]); // use unsigned char to zero-extend instead of sign-extend r->setHash(hash); location = r; }