Index: src/codec/SkCodec_libpng.cpp |
diff --git a/src/codec/SkCodec_libpng.cpp b/src/codec/SkCodec_libpng.cpp |
index 9cd382092e25da6ff77cd902ab1ae85c32a8ba31..c2a032e84ea8d98017998bdf5e6f9e12bf059685 100644 |
--- a/src/codec/SkCodec_libpng.cpp |
+++ b/src/codec/SkCodec_libpng.cpp |
@@ -624,8 +624,12 @@ public: |
SkCodecPrintf("setjmp long jump!\n"); |
return SkImageGenerator::kInvalidInput; |
} |
- |
- png_read_rows(fCodec->fPng_ptr, png_bytepp_NULL, png_bytepp_NULL, count); |
+ //there is a potential tradeoff of memory vs speed created by putting this in a loop. |
+ //calling png_read_rows in a loop is insignificantly slower than calling it once with count |
+ //as png_read_rows has it's own loop which calls png_read_row count times. |
+ for (int i = 0; i < count; i++) { |
+ png_read_rows(fCodec->fPng_ptr, &fSrcRow, png_bytepp_NULL, 1); |
+ } |
return SkImageGenerator::kSuccess; |
} |