diff options
author | tsepez <tsepez@chromium.org> | 2016-04-14 11:04:57 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-04-14 11:04:57 -0700 |
commit | 7b1ccf9697692844e764d730079a0f0b98fd6d06 (patch) | |
tree | 8e1c0b669a8dd1e06de50454b4e5db5e7c6e1a2a /fpdfsdk/fpdfppo.cpp | |
parent | 774bdde253b8394aa2ac791e273508ff006d813a (diff) | |
download | pdfium-7b1ccf9697692844e764d730079a0f0b98fd6d06.tar.xz |
Make CPDF_Dictionary methods take CFX_ByteString arguments
This will help avoid duplicate allocation of CFX_ByteStrings
when the caller already has one. It may seem counter-intuitive
that requiring the caller to pass an allocated CFX_ByteString
rather than a static CFX_ByteStringC would improve the situation,
but due to the idiosyncrasies of std::map, the CPDF_Dictionary
methods must always do an allocation under the covers which
can't be avoided.
The changed callers in this CL are places where we would
previously demote to CFX_ByteStringC and then allocate a
a duplicate CFX_ByteString in the dictionary method.
Review URL: https://codereview.chromium.org/1889863002
Diffstat (limited to 'fpdfsdk/fpdfppo.cpp')
-rw-r--r-- | fpdfsdk/fpdfppo.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fpdfsdk/fpdfppo.cpp b/fpdfsdk/fpdfppo.cpp index 300e7ba36e..1ec968ddf4 100644 --- a/fpdfsdk/fpdfppo.cpp +++ b/fpdfsdk/fpdfppo.cpp @@ -110,9 +110,9 @@ FX_BOOL CPDF_PageOrganizer::ExportPage(CPDF_Document* pSrcPDFDoc, const CFX_ByteString& cbSrcKeyStr = it.first; CPDF_Object* pObj = it.second; if (cbSrcKeyStr.Compare(("Type")) && cbSrcKeyStr.Compare(("Parent"))) { - if (pCurPageDict->KeyExist(cbSrcKeyStr.AsStringC())) - pCurPageDict->RemoveAt(cbSrcKeyStr.AsStringC()); - pCurPageDict->SetAt(cbSrcKeyStr.AsStringC(), pObj->Clone()); + if (pCurPageDict->KeyExist(cbSrcKeyStr)) + pCurPageDict->RemoveAt(cbSrcKeyStr); + pCurPageDict->SetAt(cbSrcKeyStr, pObj->Clone()); } } @@ -231,7 +231,7 @@ FX_BOOL CPDF_PageOrganizer::UpdateReference(CPDF_Object* pObj, } if (pNextObj) { if (!UpdateReference(pNextObj, pDoc, pObjNumberMap)) - pDict->RemoveAt(key.AsStringC()); + pDict->RemoveAt(key); } else { return FALSE; } |