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

Unified Diff: Source/platform/graphics/ImageBuffer.cpp

Issue 559103002: Reduce memory peaks when generating data urls for images. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 3 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
Index: Source/platform/graphics/ImageBuffer.cpp
diff --git a/Source/platform/graphics/ImageBuffer.cpp b/Source/platform/graphics/ImageBuffer.cpp
index 4ea1880db0cb0eac0d88abebf9010ad21787cf92..259f8f5ab6237d3bbdee00097831abf910cfe8d7 100644
--- a/Source/platform/graphics/ImageBuffer.cpp
+++ b/Source/platform/graphics/ImageBuffer.cpp
@@ -413,6 +413,12 @@ static bool encodeImage(T& source, const String& mimeType, const double* quality
return true;
}
+static String EncodedImageToDataURL(const Vector<char>& encodedImage, const String& mimeType)
+{
+ String base64Data = base64Encode(encodedImage);
+ return "data:" + mimeType + ";base64," + base64Data;
+}
+
String ImageBuffer::toDataURL(const String& mimeType, const double* quality) const
{
ASSERT(MIMETypeRegistry::isSupportedImageMIMETypeForEncoding(mimeType));
@@ -420,10 +426,7 @@ String ImageBuffer::toDataURL(const String& mimeType, const double* quality) con
Vector<char> encodedImage;
if (!isSurfaceValid() || !encodeImage(m_surface->bitmap(), mimeType, quality, &encodedImage))
return "data:,";
- Vector<char> base64Data;
- base64Encode(encodedImage, base64Data);
-
- return "data:" + mimeType + ";base64," + base64Data;
+ return EncodedImageToDataURL(encodedImage, mimeType);
Noel Gordon 2014/09/11 01:03:23 /curious would writing this as return "data:"
Daniel Bratell 2014/09/11 11:22:31 It would work the same. I put it in a separate met
}
String ImageDataToDataURL(const ImageDataBuffer& imageData, const String& mimeType, const double* quality)
@@ -433,11 +436,7 @@ String ImageDataToDataURL(const ImageDataBuffer& imageData, const String& mimeTy
Vector<char> encodedImage;
if (!encodeImage(imageData, mimeType, quality, &encodedImage))
return "data:,";
-
- Vector<char> base64Data;
- base64Encode(encodedImage, base64Data);
-
- return "data:" + mimeType + ";base64," + base64Data;
+ return EncodedImageToDataURL(encodedImage, mimeType);
}
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698