summaryrefslogtreecommitdiff
path: root/core
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
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')
-rw-r--r--core/fpdfapi/font/cpdf_tounicodemap.cpp4
-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
-rw-r--r--core/fpdfapi/parser/fpdf_parser_decode.cpp2
-rw-r--r--core/fpdfdoc/cpdf_formcontrol.cpp3
-rw-r--r--core/fpdfdoc/cpdf_formfield.cpp2
-rw-r--r--core/fpdfdoc/cpdf_interform.cpp7
-rw-r--r--core/fpdfdoc/cpdf_structelement.cpp4
9 files changed, 28 insertions, 26 deletions
diff --git a/core/fpdfapi/font/cpdf_tounicodemap.cpp b/core/fpdfapi/font/cpdf_tounicodemap.cpp
index 7b5936c31e..e8917310a2 100644
--- a/core/fpdfapi/font/cpdf_tounicodemap.cpp
+++ b/core/fpdfapi/font/cpdf_tounicodemap.cpp
@@ -6,6 +6,8 @@
#include "core/fpdfapi/font/cpdf_tounicodemap.h"
+#include <utility>
+
#include "core/fpdfapi/cpdf_modulemgr.h"
#include "core/fpdfapi/font/cpdf_cid2unicodemap.h"
#include "core/fpdfapi/page/cpdf_pagemodule.h"
@@ -205,7 +207,7 @@ void CPDF_ToUnicodeMap::Load(const CPDF_Stream* pStream) {
m_Map[code] = GetUnicode();
m_MultiCharBuf.AppendChar(retcode.GetLength());
m_MultiCharBuf << retcode;
- destcode = retcode;
+ destcode = std::move(retcode);
}
}
}
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();
diff --git a/core/fpdfapi/parser/fpdf_parser_decode.cpp b/core/fpdfapi/parser/fpdf_parser_decode.cpp
index aafb812234..0ca9b4eab2 100644
--- a/core/fpdfapi/parser/fpdf_parser_decode.cpp
+++ b/core/fpdfapi/parser/fpdf_parser_decode.cpp
@@ -404,7 +404,7 @@ bool PDF_DataDecode(const uint8_t* src_buf,
decoder = "DCTDecode";
else if (decoder == "CCF")
decoder = "CCITTFaxDecode";
- *ImageEncoding = decoder;
+ *ImageEncoding = std::move(decoder);
*pImageParms = pParam;
*dest_buf = last_buf;
*dest_size = last_size;
diff --git a/core/fpdfdoc/cpdf_formcontrol.cpp b/core/fpdfdoc/cpdf_formcontrol.cpp
index 2100d4ecee..a80b0294c1 100644
--- a/core/fpdfdoc/cpdf_formcontrol.cpp
+++ b/core/fpdfdoc/cpdf_formcontrol.cpp
@@ -149,11 +149,10 @@ bool CPDF_FormControl::IsDefaultChecked() const {
void CPDF_FormControl::CheckControl(bool bChecked) {
ASSERT(GetType() == CPDF_FormField::CheckBox ||
GetType() == CPDF_FormField::RadioButton);
- ByteString csOn = GetOnStateName();
ByteString csOldAS = m_pWidgetDict->GetStringFor("AS", "Off");
ByteString csAS = "Off";
if (bChecked)
- csAS = csOn;
+ csAS = GetOnStateName();
if (csOldAS == csAS)
return;
m_pWidgetDict->SetNewFor<CPDF_Name>("AS", csAS);
diff --git a/core/fpdfdoc/cpdf_formfield.cpp b/core/fpdfdoc/cpdf_formfield.cpp
index 8dcc9e68b6..2f05ad8732 100644
--- a/core/fpdfdoc/cpdf_formfield.cpp
+++ b/core/fpdfdoc/cpdf_formfield.cpp
@@ -92,7 +92,7 @@ WideString FPDF_GetFullName(CPDF_Dictionary* pFieldDict) {
WideString short_name = pLevel->GetUnicodeTextFor("T");
if (!short_name.IsEmpty()) {
if (full_name.IsEmpty())
- full_name = short_name;
+ full_name = std::move(short_name);
else
full_name = short_name + L"." + full_name;
}
diff --git a/core/fpdfdoc/cpdf_interform.cpp b/core/fpdfdoc/cpdf_interform.cpp
index de3770901b..b18310cfde 100644
--- a/core/fpdfdoc/cpdf_interform.cpp
+++ b/core/fpdfdoc/cpdf_interform.cpp
@@ -206,8 +206,7 @@ bool FindFont(CPDF_Dictionary* pFormDict,
if (!pFont)
continue;
- ByteString csBaseFont;
- csBaseFont = pFont->GetBaseFont();
+ ByteString csBaseFont = pFont->GetBaseFont();
csBaseFont.Remove(' ');
if (csBaseFont == csFontName) {
*csNameTag = csKey;
@@ -228,7 +227,7 @@ void AddFont(CPDF_Dictionary*& pFormDict,
ByteString csTag;
if (FindFont(pFormDict, pFont, &csTag)) {
- *csNameTag = csTag;
+ *csNameTag = std::move(csTag);
return;
}
if (!pFormDict)
@@ -261,7 +260,7 @@ CPDF_Font* AddNativeFont(CPDF_Dictionary*& pFormDict,
ByteString csTemp;
CPDF_Font* pFont = GetNativeFont(pFormDict, pDocument, charSet, &csTemp);
if (pFont) {
- *csNameTag = csTemp;
+ *csNameTag = std::move(csTemp);
return pFont;
}
ByteString csFontName = CPDF_InterForm::GetNativeFont(charSet, nullptr);
diff --git a/core/fpdfdoc/cpdf_structelement.cpp b/core/fpdfdoc/cpdf_structelement.cpp
index 24c028fb61..d8fc0d88ba 100644
--- a/core/fpdfdoc/cpdf_structelement.cpp
+++ b/core/fpdfdoc/cpdf_structelement.cpp
@@ -6,6 +6,8 @@
#include "core/fpdfdoc/cpdf_structelement.h"
+#include <utility>
+
#include "core/fpdfapi/parser/cpdf_array.h"
#include "core/fpdfapi/parser/cpdf_dictionary.h"
#include "core/fpdfapi/parser/cpdf_name.h"
@@ -36,7 +38,7 @@ CPDF_StructElement::CPDF_StructElement(CPDF_StructTree* pTree,
if (pTree->GetRoleMap()) {
ByteString mapped = pTree->GetRoleMap()->GetStringFor(m_Type);
if (!mapped.IsEmpty())
- m_Type = mapped;
+ m_Type = std::move(mapped);
}
LoadKids(pDict);
}