Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(414)

Unified Diff: core/fpdfapi/fpdf_page/fpdf_page_parser.cpp

Issue 1847333004: Remove _FXBSTR* and calls to FX_BSTRC. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « BUILD.gn ('k') | core/fpdfapi/fpdf_page/fpdf_page_parser_unittest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: core/fpdfapi/fpdf_page/fpdf_page_parser.cpp
diff --git a/core/fpdfapi/fpdf_page/fpdf_page_parser.cpp b/core/fpdfapi/fpdf_page/fpdf_page_parser.cpp
index bf691f41d2f2053404d6ef5d4e0f90f88c37c3c3..298b2f56e2846ea204755bc7ac8d839fa3c8a2e3 100644
--- a/core/fpdfapi/fpdf_page/fpdf_page_parser.cpp
+++ b/core/fpdfapi/fpdf_page/fpdf_page_parser.cpp
@@ -41,42 +41,24 @@ const char kPathOperatorCubicBezier3 = 'y';
const char kPathOperatorClosePath = 'h';
const char kPathOperatorRectangle[] = "re";
-struct _FX_BSTR {
- const FX_CHAR* m_Ptr;
- int m_Size;
+struct PDF_AbbrPair {
+ const FX_CHAR* full_name;
Tom Sepez 2016/04/04 15:57:30 If you'd like, you might consider flipping these a
dsinclair 2016/04/04 16:26:51 Done.
+ const FX_CHAR* abbr;
};
-#define _FX_BSTRC(str) \
- { str, sizeof(str) - 1 }
-struct PDF_AbbrPairs {
- _FX_BSTR full_name;
- _FX_BSTR abbr;
+const PDF_AbbrPair PDF_InlineKeyAbbr[] = {
+ {"BitsPerComponent", "BPC"}, {"ColorSpace", "CS"}, {"Decode", "D"},
+ {"DecodeParms", "DP"}, {"Filter", "F"}, {"Height", "H"},
+ {"ImageMask", "IM"}, {"Interpolate", "I"}, {"Width", "W"},
};
-const PDF_AbbrPairs PDF_InlineKeyAbbr[] = {
- {_FX_BSTRC("BitsPerComponent"), _FX_BSTRC("BPC")},
- {_FX_BSTRC("ColorSpace"), _FX_BSTRC("CS")},
- {_FX_BSTRC("Decode"), _FX_BSTRC("D")},
- {_FX_BSTRC("DecodeParms"), _FX_BSTRC("DP")},
- {_FX_BSTRC("Filter"), _FX_BSTRC("F")},
- {_FX_BSTRC("Height"), _FX_BSTRC("H")},
- {_FX_BSTRC("ImageMask"), _FX_BSTRC("IM")},
- {_FX_BSTRC("Interpolate"), _FX_BSTRC("I")},
- {_FX_BSTRC("Width"), _FX_BSTRC("W")},
-};
-
-const PDF_AbbrPairs PDF_InlineValueAbbr[] = {
- {_FX_BSTRC("DeviceGray"), _FX_BSTRC("G")},
- {_FX_BSTRC("DeviceRGB"), _FX_BSTRC("RGB")},
- {_FX_BSTRC("DeviceCMYK"), _FX_BSTRC("CMYK")},
- {_FX_BSTRC("Indexed"), _FX_BSTRC("I")},
- {_FX_BSTRC("ASCIIHexDecode"), _FX_BSTRC("AHx")},
- {_FX_BSTRC("ASCII85Decode"), _FX_BSTRC("A85")},
- {_FX_BSTRC("LZWDecode"), _FX_BSTRC("LZW")},
- {_FX_BSTRC("FlateDecode"), _FX_BSTRC("Fl")},
- {_FX_BSTRC("RunLengthDecode"), _FX_BSTRC("RL")},
- {_FX_BSTRC("CCITTFaxDecode"), _FX_BSTRC("CCF")},
- {_FX_BSTRC("DCTDecode"), _FX_BSTRC("DCT")},
+const PDF_AbbrPair PDF_InlineValueAbbr[] = {
+ {"DeviceGray", "G"}, {"DeviceRGB", "RGB"},
+ {"DeviceCMYK", "CMYK"}, {"Indexed", "I"},
+ {"ASCIIHexDecode", "AHx"}, {"ASCII85Decode", "A85"},
+ {"LZWDecode", "LZW"}, {"FlateDecode", "Fl"},
+ {"RunLengthDecode", "RL"}, {"CCITTFaxDecode", "CCF"},
+ {"DCTDecode", "DCT"},
};
struct AbbrReplacementOp {
@@ -98,21 +80,28 @@ class CPDF_StreamParserAutoClearer {
CPDF_StreamParser** scoped_variable_;
};
-CFX_ByteStringC PDF_FindFullName(const PDF_AbbrPairs* table,
+CFX_ByteStringC PDF_FindFullName(const PDF_AbbrPair* table,
size_t count,
const CFX_ByteStringC& abbr) {
- for (size_t i = 0; i < count; ++i) {
- if (abbr.GetLength() != table[i].abbr.m_Size)
- continue;
- if (memcmp(abbr.GetPtr(), table[i].abbr.m_Ptr, abbr.GetLength()))
- continue;
- return CFX_ByteStringC(table[i].full_name.m_Ptr, table[i].full_name.m_Size);
- }
- return CFX_ByteStringC();
+ auto it = std::find_if(
+ table, table + count,
+ [abbr](const PDF_AbbrPair& pair) { return pair.abbr == abbr; });
+ return it != table + count ? CFX_ByteString(it->full_name) : CFX_ByteString();
Tom Sepez 2016/04/04 16:11:37 This should be ByteStringC, not ByteString. argh.
dsinclair 2016/04/04 16:26:52 Good catch. Didn't notice the missing C even revie
}
} // namespace
+CFX_ByteStringC PDF_FindKeyAbbreviationForTesting(const CFX_ByteStringC& abbr) {
+ return PDF_FindFullName(PDF_InlineKeyAbbr, FX_ArraySize(PDF_InlineKeyAbbr),
+ abbr);
+}
+
+CFX_ByteStringC PDF_FindValueAbbreviationForTesting(
+ const CFX_ByteStringC& abbr) {
+ return PDF_FindFullName(PDF_InlineValueAbbr,
+ FX_ArraySize(PDF_InlineValueAbbr), abbr);
+}
+
bool IsPathOperator(const uint8_t* buf, size_t len) {
if (len == 1) {
uint8_t op = buf[0];
« no previous file with comments | « BUILD.gn ('k') | core/fpdfapi/fpdf_page/fpdf_page_parser_unittest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698