restore encode API compatibility

protect WebPConfigLosslessPreset/WebPMemoryWriterClear w/a
WEBP_ENCODER_ABI_VERSION check

Change-Id: If4debc15fee172a3f18079bc2bd29eb8447bc14b
This commit is contained in:
James Zern
2014-07-22 20:24:59 -07:00
parent 793368e8c6
commit c2fc52e4ec
7 changed files with 61 additions and 19 deletions

View File

@ -475,10 +475,20 @@ static WebPEncodingError SetFrame(const WebPConfig* const config,
// TODO(later): Perhaps a rough SSIM/PSNR produced by the encoder should
// also be a criteria, in addition to sizes.
if (mem1.size <= mem2.size) {
#if WEBP_ENCODER_ABI_VERSION > 0x0202
WebPMemoryWriterClear(&mem2);
#else
free(mem2.mem);
memset(&mem2, 0, sizeof(mem2));
#endif
GetEncodedData(&mem1, encoded_data);
} else {
#if WEBP_ENCODER_ABI_VERSION > 0x0202
WebPMemoryWriterClear(&mem1);
#else
free(mem1.mem);
memset(&mem1, 0, sizeof(mem1));
#endif
GetEncodedData(&mem2, encoded_data);
}
} else {
@ -487,8 +497,13 @@ static WebPEncodingError SetFrame(const WebPConfig* const config,
return error_code;
Err:
#if WEBP_ENCODER_ABI_VERSION > 0x0202
WebPMemoryWriterClear(&mem1);
WebPMemoryWriterClear(&mem2);
#else
free(mem1.mem);
free(mem2.mem);
#endif
return error_code;
}