From 28c7844c1ef5ea0c8727b890e9ff56b593119a00 Mon Sep 17 00:00:00 2001 From: tsepez Date: Thu, 12 May 2016 15:52:14 -0700 Subject: Add CFX_ByteStringC::CharAt() to avoid c_str() and casts. Most of the time, we want to operate on chars as if they were unsigned, but there are a few places where we need the default (questionably signed) values. Consolidate the casting in a single place rather than forcing callers to get a char* ptr. BUG=pdfium:493 Review-Url: https://codereview.chromium.org/1972053003 --- xfa/fee/fde_txtedtengine.cpp | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'xfa/fee') diff --git a/xfa/fee/fde_txtedtengine.cpp b/xfa/fee/fde_txtedtengine.cpp index dfbf02e881..71f510205b 100644 --- a/xfa/fee/fde_txtedtengine.cpp +++ b/xfa/fee/fde_txtedtengine.cpp @@ -1603,9 +1603,9 @@ void CFDE_TxtEdtEngine::DeleteSelect() { IFDE_TxtEdtDoRecord* IFDE_TxtEdtDoRecord::Create( const CFX_ByteStringC& bsDoRecord) { - const FX_CHAR* lpBuf = bsDoRecord.c_str(); - int32_t nType = *((int32_t*)lpBuf); - switch (nType) { + const uint32_t* lpBuf = + reinterpret_cast(bsDoRecord.raw_str()); + switch (*lpBuf) { case FDE_TXTEDT_DORECORD_INS: return new CFDE_TxtEdtDoRecord_Insert(bsDoRecord); case FDE_TXTEDT_DORECORD_DEL: @@ -1669,9 +1669,7 @@ void CFDE_TxtEdtDoRecord_Insert::Serialize(CFX_ByteString& bsDoRecord) const { } void CFDE_TxtEdtDoRecord_Insert::Deserialize( const CFX_ByteStringC& bsDoRecord) { - CFX_ArchiveLoader ArchiveLoader( - reinterpret_cast(bsDoRecord.c_str()), - bsDoRecord.GetLength()); + CFX_ArchiveLoader ArchiveLoader(bsDoRecord.raw_str(), bsDoRecord.GetLength()); int32_t nType = 0; ArchiveLoader >> nType; ASSERT(nType == FDE_TXTEDT_DORECORD_INS); @@ -1746,9 +1744,7 @@ void CFDE_TxtEdtDoRecord_DeleteRange::Serialize( } void CFDE_TxtEdtDoRecord_DeleteRange::Deserialize( const CFX_ByteStringC& bsDoRecord) { - CFX_ArchiveLoader ArchiveLoader( - reinterpret_cast(bsDoRecord.c_str()), - bsDoRecord.GetLength()); + CFX_ArchiveLoader ArchiveLoader(bsDoRecord.raw_str(), bsDoRecord.GetLength()); int32_t nType = 0; ArchiveLoader >> nType; ASSERT(nType == FDE_TXTEDT_DORECORD_DEL); -- cgit v1.2.3