From 2ca40471be05851582e72ff47189fa4164ff329a Mon Sep 17 00:00:00 2001 From: kramm <kramm> Date: Sun, 13 Jan 2008 09:39:23 +0000 Subject: [PATCH] fixed bug with y-direction predictors in the first scanline --- lib/png.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/png.c b/lib/png.c index fac4f77..739b895 100644 --- a/lib/png.c +++ b/lib/png.c @@ -619,6 +619,9 @@ EXPORT int getPNG(const char*sname, int*destwidth, int*destheight, unsigned char int x,y; int pos=0; *destdata = data2; + + unsigned char* firstline = malloc(header.width*4); + memset(firstline,0,header.width*4); for(y=0;y<header.height;y++) { int mode = imagedata[pos++]; //filter mode unsigned char*src; @@ -639,8 +642,7 @@ EXPORT int getPNG(const char*sname, int*destwidth, int*destheight, unsigned char } if(!y) { - memset(data2,0,header.width*4); - old = &data2[y*header.width*4]; + old = firstline; } else { old = &data2[(y-1)*header.width*4]; } @@ -661,6 +663,7 @@ EXPORT int getPNG(const char*sname, int*destwidth, int*destheight, unsigned char } } } + free(firstline); free(imagedata); } else if(header.mode == 0 || header.mode == 3) { COL*rgba = 0; -- 1.7.10.4