summaryrefslogtreecommitdiff
path: root/core/fpdfapi/page
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2018-06-19 17:33:32 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-06-19 17:33:32 +0000
commite005dc33c31a2e701e1af3a0a3e5775cabbf1ddd (patch)
tree6cf7623219078464910ee438311e24121c8af2a0 /core/fpdfapi/page
parented1c58049f0c164969946b6ad0ff06d952ab1949 (diff)
downloadpdfium-e005dc33c31a2e701e1af3a0a3e5775cabbf1ddd.tar.xz
Move fxcrt::{Byte,Wide}Strings with std::move().chromium/3466
Remove some string copies in barcode that were noticed whilst looking for moves. Change-Id: Ieda34d00f633576ba1f0dca283dcdabfb36f236c Reviewed-on: https://pdfium-review.googlesource.com/35410 Reviewed-by: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'core/fpdfapi/page')
-rw-r--r--core/fpdfapi/page/cpdf_contentmark.cpp8
-rw-r--r--core/fpdfapi/page/cpdf_contentmark.h6
-rw-r--r--core/fpdfapi/page/cpdf_streamcontentparser.cpp18
3 files changed, 16 insertions, 16 deletions
diff --git a/core/fpdfapi/page/cpdf_contentmark.cpp b/core/fpdfapi/page/cpdf_contentmark.cpp
index e17a30560f..deddf3cc3e 100644
--- a/core/fpdfapi/page/cpdf_contentmark.cpp
+++ b/core/fpdfapi/page/cpdf_contentmark.cpp
@@ -31,10 +31,10 @@ int CPDF_ContentMark::GetMarkedContentID() const {
return pData ? pData->GetMarkedContentID() : -1;
}
-void CPDF_ContentMark::AddMark(const ByteString& name,
+void CPDF_ContentMark::AddMark(ByteString name,
const CPDF_Dictionary* pDict,
bool bDirect) {
- m_Ref.GetPrivateCopy()->AddMark(name, pDict, bDirect);
+ m_Ref.GetPrivateCopy()->AddMark(std::move(name), pDict, bDirect);
}
void CPDF_ContentMark::DeleteLastMark() {
@@ -68,11 +68,11 @@ int CPDF_ContentMark::MarkData::GetMarkedContentID() const {
return -1;
}
-void CPDF_ContentMark::MarkData::AddMark(const ByteString& name,
+void CPDF_ContentMark::MarkData::AddMark(ByteString name,
const CPDF_Dictionary* pDict,
bool bDirect) {
CPDF_ContentMarkItem item;
- item.SetName(name);
+ item.SetName(std::move(name));
if (pDict) {
if (bDirect)
item.SetDirectDict(ToDictionary(pDict->Clone()));
diff --git a/core/fpdfapi/page/cpdf_contentmark.h b/core/fpdfapi/page/cpdf_contentmark.h
index 1d8b9e2515..494c20630b 100644
--- a/core/fpdfapi/page/cpdf_contentmark.h
+++ b/core/fpdfapi/page/cpdf_contentmark.h
@@ -25,9 +25,7 @@ class CPDF_ContentMark {
size_t CountItems() const;
const CPDF_ContentMarkItem& GetItem(size_t i) const;
- void AddMark(const ByteString& name,
- const CPDF_Dictionary* pDict,
- bool bDirect);
+ void AddMark(ByteString name, const CPDF_Dictionary* pDict, bool bDirect);
void DeleteLastMark();
bool HasRef() const { return !!m_Ref; }
@@ -43,7 +41,7 @@ class CPDF_ContentMark {
const CPDF_ContentMarkItem& GetItem(size_t index) const;
int GetMarkedContentID() const;
- void AddMark(const ByteString& name,
+ void AddMark(ByteString name,
const CPDF_Dictionary* pDict,
bool bDictNeedClone);
void DeleteLastMark();
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.cpp b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
index 0cc81f1e9b..2fbb73b6b2 100644
--- a/core/fpdfapi/page/cpdf_streamcontentparser.cpp
+++ b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
@@ -184,7 +184,7 @@ void ReplaceAbbr(CPDF_Object* pObj) {
if (!fullname.IsEmpty()) {
AbbrReplacementOp op;
op.is_replace_key = true;
- op.key = key;
+ op.key = std::move(key);
op.replacement = fullname;
replacements.push_back(op);
key = fullname;
@@ -606,9 +606,8 @@ void CPDF_StreamContentParser::Handle_BeginMarkedContent_Dictionary() {
return;
bDirect = false;
}
- if (const CPDF_Dictionary* pDict = pProperty->AsDictionary()) {
- m_CurContentMark.AddMark(tag, pDict, bDirect);
- }
+ if (const CPDF_Dictionary* pDict = pProperty->AsDictionary())
+ m_CurContentMark.AddMark(std::move(tag), pDict, bDirect);
}
void CPDF_StreamContentParser::Handle_BeginImage() {
@@ -755,20 +754,23 @@ void CPDF_StreamContentParser::Handle_ExecuteXObject() {
if (pXObject->GetDict())
type = pXObject->GetDict()->GetStringFor("Subtype");
+ if (type == "Form") {
+ AddForm(pXObject);
+ return;
+ }
+
if (type == "Image") {
CPDF_ImageObject* pObj = pXObject->IsInline()
? AddImage(std::unique_ptr<CPDF_Stream>(
ToStream(pXObject->Clone())))
: AddImage(pXObject->GetObjNum());
- m_LastImageName = name;
+ m_LastImageName = std::move(name);
if (pObj) {
m_pLastImage = pObj->GetImage();
if (m_pLastImage->IsMask())
m_pObjectHolder->AddImageMaskBoundingBox(pObj->GetRect());
}
- } else if (type == "Form") {
- AddForm(pXObject);
}
}
@@ -1307,7 +1309,7 @@ void CPDF_StreamContentParser::Handle_ShowText_Positioning() {
ByteString str = pObj->GetString();
if (str.IsEmpty())
continue;
- strs[iSegment] = str;
+ strs[iSegment] = std::move(str);
kernings[iSegment++] = 0;
} else {
float num = pObj->GetNumber();