diff --git a/icu4c/source/common/ucurr.cpp b/icu4c/source/common/ucurr.cpp index 8cc817ade9e..885ca3a9221 100644 --- a/icu4c/source/common/ucurr.cpp +++ b/icu4c/source/common/ucurr.cpp @@ -1031,7 +1031,7 @@ collectCurrencyNames(const char* locale, while ((symbol = iter.next()) != NULL) { (*currencySymbols)[*total_currency_symbol_count].IsoCode = iso; (*currencySymbols)[*total_currency_symbol_count].currencyName = - const_cast(symbol->getBuffer().get()); + const_cast(symbol->getBuffer()); (*currencySymbols)[*total_currency_symbol_count].flag = 0; (*currencySymbols)[(*total_currency_symbol_count)++].currencyNameLen = symbol->length(); } diff --git a/icu4c/source/common/unicode/char16ptr.h b/icu4c/source/common/unicode/char16ptr.h index d58426a0296..1d75f694f31 100644 --- a/icu4c/source/common/unicode/char16ptr.h +++ b/icu4c/source/common/unicode/char16ptr.h @@ -76,6 +76,8 @@ public: * @draft ICU 59 */ operator char16_t *() const { return get(); } + // TODO: do we need output conversion and other operator overloads + // if we do not change return values to pointer wrappers? /** * uint16_t pointer access via type conversion (e.g., static_cast). * @draft ICU 59 diff --git a/icu4c/source/common/unicode/unistr.h b/icu4c/source/common/unicode/unistr.h index 4f1f824e9cb..3de890666aa 100644 --- a/icu4c/source/common/unicode/unistr.h +++ b/icu4c/source/common/unicode/unistr.h @@ -2859,7 +2859,7 @@ public: * @see getTerminatedBuffer() * @stable ICU 2.0 */ - Char16Ptr getBuffer(int32_t minCapacity); + char16_t *getBuffer(int32_t minCapacity); /** * Release a read/write buffer on a UnicodeString object with an @@ -2913,7 +2913,7 @@ public: * @see getTerminatedBuffer() * @stable ICU 2.0 */ - inline ConstChar16Ptr getBuffer() const; + inline const char16_t *getBuffer() const; /** * Get a read-only pointer to the internal buffer, @@ -2948,7 +2948,7 @@ public: * @see getBuffer() * @stable ICU 2.2 */ - ConstChar16Ptr getTerminatedBuffer(); + const char16_t *getTerminatedBuffer(); //======================================== // Constructors @@ -3940,7 +3940,7 @@ UnicodeString::isBufferWritable() const (!(fUnion.fFields.fLengthAndFlags&kRefCounted) || refCount()==1)); } -inline ConstChar16Ptr +inline const char16_t * UnicodeString::getBuffer() const { if(fUnion.fFields.fLengthAndFlags&(kIsBogus|kOpenGetBuffer)) { return nullptr; diff --git a/icu4c/source/common/unistr.cpp b/icu4c/source/common/unistr.cpp index 3657d15e0f3..29ea82df7f1 100644 --- a/icu4c/source/common/unistr.cpp +++ b/icu4c/source/common/unistr.cpp @@ -1218,7 +1218,7 @@ UnicodeString::unBogus() { } } -ConstChar16Ptr +const char16_t * UnicodeString::getTerminatedBuffer() { if(!isWritable()) { return nullptr; @@ -1716,7 +1716,7 @@ UnicodeString::doHashCode() const // External Buffer //======================================== -Char16Ptr +char16_t * UnicodeString::getBuffer(int32_t minCapacity) { if(minCapacity>=-1 && cloneArrayIfNeeded(minCapacity)) { fUnion.fFields.fLengthAndFlags|=kOpenGetBuffer; diff --git a/icu4c/source/extra/uconv/uconv.cpp b/icu4c/source/extra/uconv/uconv.cpp index 6aad36b5a9c..3bc807c819d 100644 --- a/icu4c/source/extra/uconv/uconv.cpp +++ b/icu4c/source/extra/uconv/uconv.cpp @@ -290,7 +290,7 @@ static int printConverters(const char *pname, const char *lookfor, UnicodeString str(name, ""); putchar('\t'); - u_wmsg(stderr, "cantGetAliases", str.getTerminatedBuffer().get(), + u_wmsg(stderr, "cantGetAliases", str.getTerminatedBuffer(), u_wmsg_errorName(err)); goto error_cleanup; } else { @@ -304,7 +304,7 @@ static int printConverters(const char *pname, const char *lookfor, if (U_FAILURE(err)) { UnicodeString str(name, ""); putchar('\t'); - u_wmsg(stderr, "cantGetAliases", str.getTerminatedBuffer().get(), + u_wmsg(stderr, "cantGetAliases", str.getTerminatedBuffer(), u_wmsg_errorName(err)); goto error_cleanup; } @@ -627,7 +627,7 @@ ConvertFile::convertFile(const char *pname, UnicodeString str2(strerror(errno), ""); str2.append((UChar32) 0); initMsg(pname); - u_wmsg(stderr, "cantOpenInputF", str1.getBuffer().get(), str2.getBuffer().get()); + u_wmsg(stderr, "cantOpenInputF", str1.getBuffer(), str2.getBuffer()); return FALSE; } closeFile = TRUE; @@ -672,10 +672,10 @@ ConvertFile::convertFile(const char *pname, UChar linebuf[20], offsetbuf[20]; uprv_itou(linebuf, 20, parse.line, 10, 0); uprv_itou(offsetbuf, 20, parse.offset, 10, 0); - u_wmsg(stderr, "cantCreateTranslitParseErr", str.getTerminatedBuffer().get(), + u_wmsg(stderr, "cantCreateTranslitParseErr", str.getTerminatedBuffer(), u_wmsg_errorName(err), linebuf, offsetbuf); } else { - u_wmsg(stderr, "cantCreateTranslit", str.getTerminatedBuffer().get(), + u_wmsg(stderr, "cantCreateTranslit", str.getTerminatedBuffer(), u_wmsg_errorName(err)); } @@ -698,7 +698,7 @@ ConvertFile::convertFile(const char *pname, if (U_FAILURE(err)) { UnicodeString str(fromcpage, ""); initMsg(pname); - u_wmsg(stderr, "cantOpenFromCodeset", str.getTerminatedBuffer().get(), + u_wmsg(stderr, "cantOpenFromCodeset", str.getTerminatedBuffer(), u_wmsg_errorName(err)); goto error_exit; } @@ -713,7 +713,7 @@ ConvertFile::convertFile(const char *pname, if (U_FAILURE(err)) { UnicodeString str(tocpage, ""); initMsg(pname); - u_wmsg(stderr, "cantOpenToCodeset", str.getTerminatedBuffer().get(), + u_wmsg(stderr, "cantOpenToCodeset", str.getTerminatedBuffer(), u_wmsg_errorName(err)); goto error_exit; } @@ -742,7 +742,7 @@ ConvertFile::convertFile(const char *pname, if (ferror(infile) != 0) { UnicodeString str(strerror(errno)); initMsg(pname); - u_wmsg(stderr, "cantRead", str.getTerminatedBuffer().get()); + u_wmsg(stderr, "cantRead", str.getTerminatedBuffer()); goto error_exit; } @@ -819,8 +819,8 @@ ConvertFile::convertFile(const char *pname, initMsg(pname); u_wmsg(stderr, "problemCvtToU", - UnicodeString(pos, length, "").getTerminatedBuffer().get(), - str.getTerminatedBuffer().get(), + UnicodeString(pos, length, "").getTerminatedBuffer(), + str.getTerminatedBuffer(), u_wmsg_errorName(err)); willexit = TRUE; @@ -1008,10 +1008,10 @@ ConvertFile::convertFile(const char *pname, initMsg(pname); u_wmsg(stderr, errtag, - UnicodeString(pos, length, "").getTerminatedBuffer().get(), - str.getTerminatedBuffer().get(), + UnicodeString(pos, length, "").getTerminatedBuffer(), + str.getTerminatedBuffer(), u_wmsg_errorName(err)); - u_wmsg(stderr, "errorUnicode", str.getTerminatedBuffer().get()); + u_wmsg(stderr, "errorUnicode", str.getTerminatedBuffer()); willexit = TRUE; err = U_ZERO_ERROR; /* reset the error for the rest of the conversion. */ @@ -1026,7 +1026,7 @@ ConvertFile::convertFile(const char *pname, if (wr != outlen) { UnicodeString str(strerror(errno)); initMsg(pname); - u_wmsg(stderr, "cantWrite", str.getTerminatedBuffer().get()); + u_wmsg(stderr, "cantWrite", str.getTerminatedBuffer()); willexit = TRUE; } @@ -1075,7 +1075,7 @@ static void usage(const char *pname, int ecode) { UnicodeString upname(pname, (int32_t)(uprv_strlen(pname) + 1)); UnicodeString mname(msg, msgLen + 1); - res = u_wmsg(fp, "usage", mname.getBuffer().get(), upname.getBuffer().get()); + res = u_wmsg(fp, "usage", mname.getBuffer(), upname.getBuffer()); if (!ecode) { if (!res) { fputc('\n', fp); @@ -1184,7 +1184,7 @@ main(int argc, char **argv) initMsg(pname); UnicodeString str(*iter); initMsg(pname); - u_wmsg(stderr, "badBlockSize", str.getTerminatedBuffer().get()); + u_wmsg(stderr, "badBlockSize", str.getTerminatedBuffer()); return 3; } } else { @@ -1212,7 +1212,7 @@ main(int argc, char **argv) if (U_FAILURE(e) || !printName) { UnicodeString str(*iter); initMsg(pname); - u_wmsg(stderr, "noSuchCodeset", str.getTerminatedBuffer().get()); + u_wmsg(stderr, "noSuchCodeset", str.getTerminatedBuffer()); return 2; } } else @@ -1240,7 +1240,7 @@ main(int argc, char **argv) } else { UnicodeString str(*iter); initMsg(pname); - u_wmsg(stderr, "unknownCallback", str.getTerminatedBuffer().get()); + u_wmsg(stderr, "unknownCallback", str.getTerminatedBuffer()); return 4; } } else { @@ -1256,7 +1256,7 @@ main(int argc, char **argv) } else { UnicodeString str(*iter); initMsg(pname); - u_wmsg(stderr, "unknownCallback", str.getTerminatedBuffer().get()); + u_wmsg(stderr, "unknownCallback", str.getTerminatedBuffer()); return 4; } } else { @@ -1276,7 +1276,7 @@ main(int argc, char **argv) } else { UnicodeString str(*iter); initMsg(pname); - u_wmsg(stderr, "unknownCallback", str.getTerminatedBuffer().get()); + u_wmsg(stderr, "unknownCallback", str.getTerminatedBuffer()); return 4; } } else { @@ -1329,7 +1329,7 @@ main(int argc, char **argv) UnicodeString str2(strerror(errno), ""); initMsg(pname); u_wmsg(stderr, "cantCreateOutputF", - str1.getBuffer().get(), str2.getBuffer().get()); + str1.getBuffer(), str2.getBuffer()); return 1; } } else { diff --git a/icu4c/source/i18n/collationfastlatinbuilder.h b/icu4c/source/i18n/collationfastlatinbuilder.h index ad64d03b75f..8b63b86815f 100644 --- a/icu4c/source/i18n/collationfastlatinbuilder.h +++ b/icu4c/source/i18n/collationfastlatinbuilder.h @@ -37,7 +37,7 @@ public: UBool forData(const CollationData &data, UErrorCode &errorCode); const uint16_t *getTable() const { - return result.getBuffer(); + return reinterpret_cast(result.getBuffer()); } int32_t lengthOfTable() const { return result.length(); } diff --git a/icu4c/source/i18n/dtfmtsym.cpp b/icu4c/source/i18n/dtfmtsym.cpp index 960971980bc..6dd4380a4df 100644 --- a/icu4c/source/i18n/dtfmtsym.cpp +++ b/icu4c/source/i18n/dtfmtsym.cpp @@ -1368,7 +1368,7 @@ DateFormatSymbols::setZoneStrings(const UnicodeString* const *strings, int32_t r //------------------------------------------------------ -ConstChar16Ptr U_EXPORT2 +const char16_t * U_EXPORT2 DateFormatSymbols::getPatternUChars(void) { return gPatternChars; diff --git a/icu4c/source/i18n/numfmt.cpp b/icu4c/source/i18n/numfmt.cpp index e84f9fdd8d2..ea9aed1a359 100644 --- a/icu4c/source/i18n/numfmt.cpp +++ b/icu4c/source/i18n/numfmt.cpp @@ -1188,7 +1188,7 @@ void NumberFormat::setCurrency(const UChar* theCurrency, UErrorCode& ec) { } } -ConstChar16Ptr NumberFormat::getCurrency() const { +const char16_t* NumberFormat::getCurrency() const { return fCurrency; } diff --git a/icu4c/source/i18n/smpdtfmt.cpp b/icu4c/source/i18n/smpdtfmt.cpp index 69a13450a68..3c0670446b3 100644 --- a/icu4c/source/i18n/smpdtfmt.cpp +++ b/icu4c/source/i18n/smpdtfmt.cpp @@ -3789,7 +3789,7 @@ SimpleDateFormat::toLocalizedPattern(UnicodeString& result, UErrorCode& status) const { translatePattern(fPattern, result, - UnicodeString(DateFormatSymbols::getPatternUChars().get()), + UnicodeString(DateFormatSymbols::getPatternUChars()), fSymbols->fLocalPatternChars, status); return result; } @@ -3811,7 +3811,7 @@ SimpleDateFormat::applyLocalizedPattern(const UnicodeString& pattern, { translatePattern(pattern, fPattern, fSymbols->fLocalPatternChars, - UnicodeString(DateFormatSymbols::getPatternUChars().get()), status); + UnicodeString(DateFormatSymbols::getPatternUChars()), status); } //---------------------------------------------------------------------- diff --git a/icu4c/source/i18n/unicode/curramt.h b/icu4c/source/i18n/unicode/curramt.h index a645667d9d0..e321df861d2 100644 --- a/icu4c/source/i18n/unicode/curramt.h +++ b/icu4c/source/i18n/unicode/curramt.h @@ -115,14 +115,14 @@ class U_I18N_API CurrencyAmount: public Measure { * Return the ISO currency code of this object. * @stable ICU 3.0 */ - inline ConstChar16Ptr getISOCurrency() const; + inline const char16_t* getISOCurrency() const; }; inline const CurrencyUnit& CurrencyAmount::getCurrency() const { return (const CurrencyUnit&) getUnit(); } -inline ConstChar16Ptr CurrencyAmount::getISOCurrency() const { +inline const char16_t* CurrencyAmount::getISOCurrency() const { return getCurrency().getISOCurrency(); } diff --git a/icu4c/source/i18n/unicode/currunit.h b/icu4c/source/i18n/unicode/currunit.h index cefea536eb0..fd0f9f2bcce 100644 --- a/icu4c/source/i18n/unicode/currunit.h +++ b/icu4c/source/i18n/unicode/currunit.h @@ -93,7 +93,7 @@ class U_I18N_API CurrencyUnit: public MeasureUnit { * Return the ISO currency code of this object. * @stable ICU 3.0 */ - inline ConstChar16Ptr getISOCurrency() const; + inline const char16_t* getISOCurrency() const; private: /** @@ -102,7 +102,7 @@ class U_I18N_API CurrencyUnit: public MeasureUnit { char16_t isoCode[4]; }; -inline ConstChar16Ptr CurrencyUnit::getISOCurrency() const { +inline const char16_t* CurrencyUnit::getISOCurrency() const { return isoCode; } diff --git a/icu4c/source/i18n/unicode/dtfmtsym.h b/icu4c/source/i18n/unicode/dtfmtsym.h index e5f4d5c36c8..0cf3ce20ac6 100644 --- a/icu4c/source/i18n/unicode/dtfmtsym.h +++ b/icu4c/source/i18n/unicode/dtfmtsym.h @@ -566,7 +566,7 @@ public: * @return the non-localized date-time pattern characters * @stable ICU 2.0 */ - static ConstChar16Ptr U_EXPORT2 getPatternUChars(void); + static const char16_t * U_EXPORT2 getPatternUChars(void); /** * Gets localized date-time pattern characters. For example: 'u', 't', etc. diff --git a/icu4c/source/i18n/unicode/numfmt.h b/icu4c/source/i18n/unicode/numfmt.h index 6d83f43f520..b8dec36be64 100644 --- a/icu4c/source/i18n/unicode/numfmt.h +++ b/icu4c/source/i18n/unicode/numfmt.h @@ -940,7 +940,7 @@ public: * the currency in use, or a pointer to the empty string. * @stable ICU 2.6 */ - ConstChar16Ptr getCurrency() const; + const char16_t* getCurrency() const; /** * Set a particular UDisplayContext value in the formatter, such as diff --git a/icu4c/source/i18n/unum.cpp b/icu4c/source/i18n/unum.cpp index 458a79c7fde..b8d26612ff2 100644 --- a/icu4c/source/i18n/unum.cpp +++ b/icu4c/source/i18n/unum.cpp @@ -609,7 +609,7 @@ unum_getTextAttribute(const UNumberFormat* fmt, break; case UNUM_CURRENCY_CODE: - res = UnicodeString(df->getCurrency().get()); + res = UnicodeString(df->getCurrency()); break; default: diff --git a/icu4c/source/test/intltest/dtfmtrtts.cpp b/icu4c/source/test/intltest/dtfmtrtts.cpp index 32f4715df37..5bac60ed7db 100644 --- a/icu4c/source/test/intltest/dtfmtrtts.cpp +++ b/icu4c/source/test/intltest/dtfmtrtts.cpp @@ -121,9 +121,7 @@ void DateFormatRoundTripTest::TestCentury() */ //if (date[1] != date[2] || result[0] != result[1]) { if (date[1] != date[2]) { - errln("Round trip failure: \"%S\" (%f), \"%S\" (%f)", - static_cast(result[0].getBuffer()), date[1], - static_cast(result[1].getBuffer()), date[2]); + errln("Round trip failure: \"%S\" (%f), \"%S\" (%f)", result[0].getBuffer(), date[1], result[1].getBuffer(), date[2]); } } diff --git a/icu4c/source/test/intltest/dtfmttst.cpp b/icu4c/source/test/intltest/dtfmttst.cpp index f9461739257..63d127346da 100644 --- a/icu4c/source/test/intltest/dtfmttst.cpp +++ b/icu4c/source/test/intltest/dtfmttst.cpp @@ -514,7 +514,7 @@ void DateFormatTest::TestFieldPosition() { // local pattern chars data is not longer loaded // from icu locale bundle assertEquals("patternChars", PATTERN_CHARS, rootSyms.getLocalPatternChars(buf)); - assertEquals("patternChars", PATTERN_CHARS, DateFormatSymbols::getPatternUChars().get()); + assertEquals("patternChars", PATTERN_CHARS, DateFormatSymbols::getPatternUChars()); assertTrue("DATEFORMAT_FIELD_NAMES", DATEFORMAT_FIELD_NAMES_LENGTH == UDAT_FIELD_COUNT); #if UDAT_HAS_PATTERN_CHAR_FOR_TIME_SEPARATOR assertTrue("Data", UDAT_FIELD_COUNT == uprv_strlen(PATTERN_CHARS)); diff --git a/icu4c/source/test/intltest/intltest.cpp b/icu4c/source/test/intltest/intltest.cpp index bfefe3f8570..ab5ce8c1272 100644 --- a/icu4c/source/test/intltest/intltest.cpp +++ b/icu4c/source/test/intltest/intltest.cpp @@ -187,7 +187,7 @@ UnicodeString _toString(const Formattable& f) { case Formattable::kObject: { const CurrencyAmount* c = dynamic_cast(f.getObject()); if (c != NULL) { - s = _toString(c->getNumber()) + " " + UnicodeString(c->getISOCurrency().get()); + s = _toString(c->getNumber()) + " " + UnicodeString(c->getISOCurrency()); } else { s = UnicodeString("Unknown UObject"); } diff --git a/icu4c/source/test/intltest/measfmttest.cpp b/icu4c/source/test/intltest/measfmttest.cpp index 10fa1c74950..f34d8397c01 100644 --- a/icu4c/source/test/intltest/measfmttest.cpp +++ b/icu4c/source/test/intltest/measfmttest.cpp @@ -1856,7 +1856,7 @@ void MeasureFormatTest::TestCurrencies() { u_uastrcpy(USD, "USD"); UErrorCode status = U_ZERO_ERROR; CurrencyAmount USD_1(1.0, USD, status); - assertEquals("Currency Code", USD, USD_1.getISOCurrency().get()); + assertEquals("Currency Code", USD, USD_1.getISOCurrency()); CurrencyAmount USD_2(2.0, USD, status); CurrencyAmount USD_NEG_1(-1.0, USD, status); if (!assertSuccess("Error creating currencies", status)) { diff --git a/icu4c/source/test/intltest/numfmtst.cpp b/icu4c/source/test/intltest/numfmtst.cpp index ea67aa2d47c..a8553f57802 100644 --- a/icu4c/source/test/intltest/numfmtst.cpp +++ b/icu4c/source/test/intltest/numfmtst.cpp @@ -440,7 +440,7 @@ UBool NumberFormatTestDataDriven::isParseCurrencyPass( } return TRUE; } - UnicodeString currStr(currAmt->getISOCurrency().get()); + UnicodeString currStr(currAmt->getISOCurrency()); Formattable resultFormattable(currAmt->getNumber()); UnicodeString resultStr(UnicodeString::fromUTF8(resultFormattable.getDecimalNumber(status))); if (tuple.output == "fail") { @@ -3168,7 +3168,7 @@ void NumberFormatTest::expectParseCurrency(const NumberFormat &fmt, const UChar* uprv_strcpy(theOperation, theInfo); uprv_strcat(theOperation, ", check currency:"); - assertEquals(theOperation, currency, currencyAmount->getISOCurrency().get()); + assertEquals(theOperation, currency, currencyAmount->getISOCurrency()); } @@ -3763,14 +3763,14 @@ NumberFormatTest::TestCurrencyFormatForMixParsing() { } else if (result.getType() != Formattable::kObject || (curramt = dynamic_cast(result.getObject())) == NULL || curramt->getNumber().getDouble() != 1234.56 || - UnicodeString(curramt->getISOCurrency().get()).compare(ISO_CURRENCY_USD) + UnicodeString(curramt->getISOCurrency()).compare(ISO_CURRENCY_USD) ) { errln("FAIL: getCurrencyFormat of default locale (en_US) failed roundtripping the number "); if (curramt->getNumber().getDouble() != 1234.56) { errln((UnicodeString)"wong number, expect: 1234.56" + ", got: " + curramt->getNumber().getDouble()); } if (curramt->getISOCurrency() != ISO_CURRENCY_USD) { - errln((UnicodeString)"wong currency, expect: USD" + ", got: " + curramt->getISOCurrency().get()); + errln((UnicodeString)"wong currency, expect: USD" + ", got: " + curramt->getISOCurrency()); } } } diff --git a/icu4c/source/test/intltest/tsmthred.cpp b/icu4c/source/test/intltest/tsmthred.cpp index 5cff8ee51d0..036d5e1d355 100644 --- a/icu4c/source/test/intltest/tsmthred.cpp +++ b/icu4c/source/test/intltest/tsmthred.cpp @@ -547,7 +547,7 @@ UBool ThreadSafeFormat::doStuff(int32_t offset, UnicodeString &appendErr, UError appendErr.append("fFormat currency != ") .append(kUSD) .append(", =") - .append(fFormat->getCurrency().get()) + .append(fFormat->getCurrency()) .append("! "); okay = FALSE; } @@ -556,7 +556,7 @@ UBool ThreadSafeFormat::doStuff(int32_t offset, UnicodeString &appendErr, UError appendErr.append("gFormat currency != ") .append(kUSD) .append(", =") - .append(gSharedData->fFormat->getCurrency().get()) + .append(gSharedData->fFormat->getCurrency()) .append("! "); okay = FALSE; } diff --git a/icu4c/source/test/intltest/ustrtest.cpp b/icu4c/source/test/intltest/ustrtest.cpp index d1f2bfe6ff6..cdd519b9bb6 100644 --- a/icu4c/source/test/intltest/ustrtest.cpp +++ b/icu4c/source/test/intltest/ustrtest.cpp @@ -1086,7 +1086,7 @@ UnicodeStringTest::TestMiscellaneous() } // test releaseBuffer() with a NUL-terminated buffer - test1.getBuffer(20).get()[2]=0; + test1.getBuffer(20)[2]=0; test1.releaseBuffer(); // implicit -1 if(test1.length()!=2 || test1.charAt(0)!=1 || test1.charAt(1) !=2) { errln("UnicodeString::releaseBuffer(-1) does not properly set the length of the UnicodeString"); @@ -1558,7 +1558,7 @@ UnicodeStringTest::TestBogus() { // writable alias to another string's buffer: very bad idea, just convenient for this test test3.setToBogus(); if(!test3.isBogus() || - test3.setTo(const_cast(test1.getBuffer().get()), + test3.setTo(const_cast(test1.getBuffer()), test1.length(), test1.getCapacity()).isBogus() || test3!=test1) { errln("bogus.setTo(writable alias) failed"); diff --git a/icu4c/source/tools/genrb/reslist.cpp b/icu4c/source/tools/genrb/reslist.cpp index 8c8ed4162da..abeaf0e49fc 100644 --- a/icu4c/source/tools/genrb/reslist.cpp +++ b/icu4c/source/tools/genrb/reslist.cpp @@ -1031,7 +1031,7 @@ void SRBRoot::write(const char *outputDir, const char *outputPkg, if (f16BitUnits.length() <= 1) { // no pool strings to checksum } else if (U_IS_BIG_ENDIAN) { - checksum = computeCRC(reinterpret_cast(f16BitUnits.getBuffer().get()), + checksum = computeCRC(reinterpret_cast(f16BitUnits.getBuffer()), (uint32_t)f16BitUnits.length() * 2, checksum); } else { // Swap to big-endian so we get the same checksum on all platforms @@ -1039,7 +1039,7 @@ void SRBRoot::write(const char *outputDir, const char *outputPkg, UnicodeString s(f16BitUnits); s.append((UChar)1); // Ensure that we own this buffer. assert(!s.isBogus()); - uint16_t *p = const_cast(static_cast(s.getBuffer())); + uint16_t *p = const_cast(reinterpret_cast(s.getBuffer())); for (int32_t count = f16BitUnits.length(); count > 0; --count) { uint16_t x = *p; *p++ = (uint16_t)((x << 8) | (x >> 8));