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

Unified Diff: src/pdf/SkPDFMetadata.cpp

Issue 1403803002: SkStringPrintf and SkString::printf now are no longer limted by a static buffer (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: 2015-10-12 (Monday) 15:52:58 EDT Created 5 years, 2 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
« src/core/SkString.cpp ('K') | « src/core/SkString.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/pdf/SkPDFMetadata.cpp
diff --git a/src/pdf/SkPDFMetadata.cpp b/src/pdf/SkPDFMetadata.cpp
index 4865deb11e47c4c17e287c90bb59303a2461c861..48cbbd6ff629815b547952ceefffc06bf0c67835 100644
--- a/src/pdf/SkPDFMetadata.cpp
+++ b/src/pdf/SkPDFMetadata.cpp
@@ -94,54 +94,6 @@ SkPDFObject* SkPDFMetadata::CreatePdfId(const UUID& doc, const UUID& instance) {
return array.detach();
}
-// Improvement on SkStringPrintf to allow for arbitrarily long output.
-// TODO: replace SkStringPrintf.
-static SkString sk_string_printf(const char* format, ...) {
-#ifdef SK_BUILD_FOR_WIN
- va_list args;
- va_start(args, format);
- char buffer[1024];
- int length = _vsnprintf_s(buffer, sizeof(buffer), _TRUNCATE, format, args);
- va_end(args);
- if (length >= 0 && length < (int)sizeof(buffer)) {
- return SkString(buffer, length);
- }
- va_start(args, format);
- length = _vscprintf(format, args);
- va_end(args);
-
- SkString string((size_t)length);
- va_start(args, format);
- SkDEBUGCODE(int check = ) _vsnprintf_s(string.writable_str(), length + 1,
- _TRUNCATE, format, args);
- va_end(args);
- SkASSERT(check == length);
- SkASSERT(string[length] == '\0');
- return skstd::move(string);
-#else // C99/C++11 standard vsnprintf
- // TODO: When all compilers support this, remove windows-specific code.
- va_list args;
- va_start(args, format);
- char buffer[1024];
- int length = vsnprintf(buffer, sizeof(buffer), format, args);
- va_end(args);
- if (length < 0) {
- return SkString();
- }
- if (length < (int)sizeof(buffer)) {
- return SkString(buffer, length);
- }
- SkString string((size_t)length);
- va_start(args, format);
- SkDEBUGCODE(int check = )
- vsnprintf(string.writable_str(), length + 1, format, args);
- va_end(args);
- SkASSERT(check == length);
- SkASSERT(string[length] == '\0');
- return skstd::move(string);
-#endif
-}
-
static const SkString get(const SkTArray<SkDocument::Attribute>& info,
const char* key) {
for (const auto& keyValue : info) {
@@ -304,16 +256,16 @@ SkPDFObject* SkPDFMetadata::createXMPObject(const UUID& doc,
fCreation->toISO8601(&tmp);
SkASSERT(0 == count_xml_escape_size(tmp));
// YYYY-mm-ddTHH:MM:SS[+|-]ZZ:ZZ; no need to escape
- creationDate = sk_string_printf("<xmp:CreateDate>%s</xmp:CreateDate>\n",
- tmp.c_str());
+ creationDate = SkStringPrintf("<xmp:CreateDate>%s</xmp:CreateDate>\n",
+ tmp.c_str());
}
if (fModified) {
SkString tmp;
fModified->toISO8601(&tmp);
SkASSERT(0 == count_xml_escape_size(tmp));
- modificationDate = sk_string_printf(
+ modificationDate = SkStringPrintf(
"<xmp:ModifyDate>%s</xmp:ModifyDate>\n", tmp.c_str());
- metadataDate = sk_string_printf(
+ metadataDate = SkStringPrintf(
"<xmp:MetadataDate>%s</xmp:MetadataDate>\n", tmp.c_str());
}
@@ -340,7 +292,7 @@ SkPDFObject* SkPDFMetadata::createXMPObject(const UUID& doc,
SkASSERT(0 == count_xml_escape_size(documentID));
SkString instanceID = uuid_to_string(instance);
SkASSERT(0 == count_xml_escape_size(instanceID));
- return new PDFXMLObject(sk_string_printf(
+ return new PDFXMLObject(SkStringPrintf(
templateString, modificationDate.c_str(), creationDate.c_str(),
metadataDate.c_str(), creator.c_str(), title.c_str(),
subject.c_str(), author.c_str(), keywords1.c_str(),
« src/core/SkString.cpp ('K') | « src/core/SkString.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698