Index: Source/web/ImageDecodeBench.cpp |
diff --git a/Source/web/ImageDecodeBench.cpp b/Source/web/ImageDecodeBench.cpp |
index 2f6f2b47c90d68347c208ef1f0e10f18f6444e69..6067ab92d4bb7af5529b8f38ed176585be93807b 100644 |
--- a/Source/web/ImageDecodeBench.cpp |
+++ b/Source/web/ImageDecodeBench.cpp |
@@ -365,8 +365,14 @@ int main(int argc, char* argv[]) |
double totalTime = 0.0; |
for (size_t i = 0; i < iterations; ++i) { |
+ // Copy the SharedBuffer. Note that we do not want to call |
+ // SharedBuffer::copy, which would merge all the segments. We want this |
+ // to look just like it would receiving partial data off the web. |
+ // After this call, data will have its segments merged, but not tempData. |
+ RefPtr<SharedBuffer> tempData = SharedBuffer::create(data->data(), data->size()); |
+ |
double startTime = getCurrentTime(); |
- bool decoded = decodeImageData(data.get(), applyColorCorrection); |
+ bool decoded = decodeImageData(tempData.get(), applyColorCorrection); |
double elapsedTime = getCurrentTime() - startTime; |
totalTime += elapsedTime; |
if (!decoded) { |