cvs: gd /libgd/src gd_bmp.c gd_gd.c gd_gd2.c gd_gif_out.c gd_jpeg.c gd_png.c gd_tga.c gd_tiff.c gd_wbmp.c /libgd/tests/bmp CMakeLists.txt Makefile.am bmp_im2im.c /libgd/tests/gd CMakeLists.txt Makefile.am gd_im2im.c /libgd/tests/gd2 CMakeLists.txt Makefile.am gd2_im2im.c /libgd/tests/gdtest gdtest.c /libgd/tests/gif CMakeLists.txt Makefile.am gif_im2im.c /libgd/tests/jpeg CMakeLists.txt Makefile.am jpeg_im2im.c /libgd/tests/png CMakeLists.txt Makefile.am png_im2im.c /libgd/tests/tiff CMakeLists.txt Makefile.am tiff_im2im.c /libgd/tests/wbmp CMakeLists.txt Makefile.am wbmp_im2im.c

[email protected] ("Takeshi Abe") Thu, 25 Jun 2009 19:05:46 -0000
Newsgroups php.gd.cvs
Message-ID <cvstabe1245956746@cvsserver>
--tabe1245956746
Content-Type: text/plain

tabe		Thu Jun 25 19:05:46 2009 UTC

  Added files:                 
    /gd/libgd/tests/bmp	bmp_im2im.c 
    /gd/libgd/tests/gd	gd_im2im.c 
    /gd/libgd/tests/gd2	gd2_im2im.c 
    /gd/libgd/tests/gif	gif_im2im.c 
    /gd/libgd/tests/jpeg	jpeg_im2im.c 
    /gd/libgd/tests/png	png_im2im.c 
    /gd/libgd/tests/tiff	tiff_im2im.c 
    /gd/libgd/tests/wbmp	wbmp_im2im.c 

  Modified files:              
    /gd/libgd/src	gd_bmp.c gd_gd.c gd_gd2.c gd_gif_out.c gd_jpeg.c 
                 	gd_png.c gd_tga.c gd_tiff.c gd_wbmp.c 
    /gd/libgd/tests/bmp	CMakeLists.txt Makefile.am 
    /gd/libgd/tests/gd	CMakeLists.txt Makefile.am 
    /gd/libgd/tests/gd2	CMakeLists.txt Makefile.am 
    /gd/libgd/tests/gdtest	gdtest.c 
    /gd/libgd/tests/gif	CMakeLists.txt Makefile.am 
    /gd/libgd/tests/jpeg	CMakeLists.txt Makefile.am 
    /gd/libgd/tests/png	CMakeLists.txt Makefile.am 
    /gd/libgd/tests/tiff	CMakeLists.txt Makefile.am 
    /gd/libgd/tests/wbmp	CMakeLists.txt Makefile.am 
  Log:
  fixed possible segfaults when gdNewDynamicCtx() returns null
  
--tabe1245956746
Content-Type: text/plain
Content-Disposition: attachment; filename="tabe-20090625190546.txt"

http://cvs.php.net/viewvc.cgi/gd/libgd/src/gd_bmp.c?r1=1.2&r2=1.3&diff_format=u
Index: gd/libgd/src/gd_bmp.c
diff -u gd/libgd/src/gd_bmp.c:1.2 gd/libgd/src/gd_bmp.c:1.3
--- gd/libgd/src/gd_bmp.c:1.2	Thu Jun 18 13:35:25 2009
+++ gd/libgd/src/gd_bmp.c	Thu Jun 25 19:05:45 2009
@@ -12,7 +12,7 @@
 
 	----------------------------------------------------------------------------
  */
-/* $Id: gd_bmp.c,v 1.2 2009/06/18 13:35:25 tabe Exp $ */
+/* $Id: gd_bmp.c,v 1.3 2009/06/25 19:05:45 tabe Exp $ */
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -64,6 +64,7 @@
 {
 	void *rv;
 	gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
+	if (out == NULL) return NULL;
 	gdImageBmpCtx(im, out, compression);
 	rv = gdDPExtractData(out, size);
 	out->gd_free(out);
@@ -413,6 +414,7 @@
 {
 	gdImagePtr im;
 	gdIOCtx *in = gdNewDynamicCtxEx(size, data, 0);
+	if (in == NULL) return NULL;
 	im = gdImageCreateFromBmpCtx(in);
 	in->gd_free(in);
 	return im;
http://cvs.php.net/viewvc.cgi/gd/libgd/src/gd_gd.c?r1=1.15&r2=1.16&diff_format=u
Index: gd/libgd/src/gd_gd.c
diff -u gd/libgd/src/gd_gd.c:1.15 gd/libgd/src/gd_gd.c:1.16
--- gd/libgd/src/gd_gd.c:1.15	Thu Jun 18 13:35:25 2009
+++ gd/libgd/src/gd_gd.c	Thu Jun 25 19:05:45 2009
@@ -326,6 +326,7 @@
 {
   void *rv;
   gdIOCtx *out = gdNewDynamicCtx (2048, NULL);
+  if (out == NULL) return NULL;
   _gdImageGd (im, out);
   rv = gdDPExtractData (out, size);
   out->gd_free (out);
http://cvs.php.net/viewvc.cgi/gd/libgd/src/gd_gd2.c?r1=1.24&r2=1.25&diff_format=u
Index: gd/libgd/src/gd_gd2.c
diff -u gd/libgd/src/gd_gd2.c:1.24 gd/libgd/src/gd_gd2.c:1.25
--- gd/libgd/src/gd_gd2.c:1.24	Thu Jun 18 13:35:25 2009
+++ gd/libgd/src/gd_gd2.c	Thu Jun 25 19:05:45 2009
@@ -1056,6 +1056,7 @@
 {
   void *rv;
   gdIOCtx *out = gdNewDynamicCtx (2048, NULL);
+  if (out == NULL) return NULL;
   _gdImageGd2 (im, out, cs, fmt);
   rv = gdDPExtractData (out, size);
   out->gd_free (out);
http://cvs.php.net/viewvc.cgi/gd/libgd/src/gd_gif_out.c?r1=1.10&r2=1.11&diff_format=u
Index: gd/libgd/src/gd_gif_out.c
diff -u gd/libgd/src/gd_gif_out.c:1.10 gd/libgd/src/gd_gif_out.c:1.11
--- gd/libgd/src/gd_gif_out.c:1.10	Thu Jun 18 13:35:25 2009
+++ gd/libgd/src/gd_gif_out.c	Thu Jun 25 19:05:45 2009
@@ -93,6 +93,7 @@
 {
 	void *rv;
 	gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
+	if (out == NULL) return NULL;
 	gdImageGifCtx(im, out);
 	rv = gdDPExtractData(out, size);
 	out->gd_free(out);
@@ -142,6 +143,7 @@
 {
 	void *rv;
 	gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
+	if (out == NULL) return NULL;
 	gdImageGifAnimBeginCtx(im, out, GlobalCM, Loops);
 	rv = gdDPExtractData(out, size);
 	out->gd_free(out);
@@ -224,6 +226,7 @@
 {
 	void *rv;
 	gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
+	if (out == NULL) return NULL;
 	gdImageGifAnimAddCtx(im, out, LocalCM, LeftOfs, TopOfs, Delay, Disposal, previm);
 	rv = gdDPExtractData(out, size);
 	out->gd_free(out);
http://cvs.php.net/viewvc.cgi/gd/libgd/src/gd_jpeg.c?r1=1.26&r2=1.27&diff_format=u
Index: gd/libgd/src/gd_jpeg.c
diff -u gd/libgd/src/gd_jpeg.c:1.26 gd/libgd/src/gd_jpeg.c:1.27
--- gd/libgd/src/gd_jpeg.c:1.26	Thu Jun 18 13:35:25 2009
+++ gd/libgd/src/gd_jpeg.c	Thu Jun 25 19:05:45 2009
@@ -104,6 +104,7 @@
 {
 	void *rv;
 	gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
+	if (out == NULL) return NULL;
 	gdImageJpegCtx(im, out, quality);
 	rv = gdDPExtractData(out, size);
 	out->gd_free(out);
http://cvs.php.net/viewvc.cgi/gd/libgd/src/gd_png.c?r1=1.33&r2=1.34&diff_format=u
Index: gd/libgd/src/gd_png.c
diff -u gd/libgd/src/gd_png.c:1.33 gd/libgd/src/gd_png.c:1.34
--- gd/libgd/src/gd_png.c:1.33	Thu Jun 18 13:35:25 2009
+++ gd/libgd/src/gd_png.c	Thu Jun 25 19:05:45 2009
@@ -1,4 +1,4 @@
-/* $Id: gd_png.c,v 1.33 2009/06/18 13:35:25 tabe Exp $ */
+/* $Id: gd_png.c,v 1.34 2009/06/25 19:05:45 tabe Exp $ */
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -485,6 +485,7 @@
 {
 	void *rv;
 	gdIOCtx *out = gdNewDynamicCtx (2048, NULL);
+	if (out == NULL) return NULL;
 	gdImagePngCtxEx (im, out, -1);
 	rv = gdDPExtractData (out, size);
 	out->gd_free (out);
@@ -495,6 +496,7 @@
 {
 	void *rv;
 	gdIOCtx *out = gdNewDynamicCtx (2048, NULL);
+	if (out == NULL) return NULL;
 	gdImagePngCtxEx (im, out, level);
 	rv = gdDPExtractData (out, size);
 	out->gd_free (out);
http://cvs.php.net/viewvc.cgi/gd/libgd/src/gd_tga.c?r1=1.13&r2=1.14&diff_format=u
Index: gd/libgd/src/gd_tga.c
diff -u gd/libgd/src/gd_tga.c:1.13 gd/libgd/src/gd_tga.c:1.14
--- gd/libgd/src/gd_tga.c:1.13	Thu Jun 18 13:35:25 2009
+++ gd/libgd/src/gd_tga.c	Thu Jun 25 19:05:45 2009
@@ -26,6 +26,7 @@
 {
 	gdImagePtr im;
 	gdIOCtx *in = gdNewDynamicCtxEx (size, data, 0);
+	if (in == NULL) return NULL;
 	im = gdImageCreateFromTgaCtx(in);
 	in->gd_free(in);
 	return im;
http://cvs.php.net/viewvc.cgi/gd/libgd/src/gd_tiff.c?r1=1.22&r2=1.23&diff_format=u
Index: gd/libgd/src/gd_tiff.c
diff -u gd/libgd/src/gd_tiff.c:1.22 gd/libgd/src/gd_tiff.c:1.23
--- gd/libgd/src/gd_tiff.c:1.22	Thu Jun 18 13:35:25 2009
+++ gd/libgd/src/gd_tiff.c	Thu Jun 25 19:05:45 2009
@@ -27,7 +27,7 @@
 
    ----------------------------------------------------------------------------
  */
-/* $Id: gd_tiff.c,v 1.22 2009/06/18 13:35:25 tabe Exp $ */
+/* $Id: gd_tiff.c,v 1.23 2009/06/25 19:05:45 tabe Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #	include "config.h"
@@ -991,6 +991,7 @@
 {
 	gdImagePtr im;
 	gdIOCtx *in = gdNewDynamicCtxEx (size, data, 0);
+	if (in == NULL) return NULL;
 	im = gdImageCreateFromTiffCtx(in);
 	in->gd_free(in);
 	return im;
@@ -1014,6 +1015,7 @@
 {
 	void *rv;
 	gdIOCtx *out = gdNewDynamicCtx (2048, NULL);
+	if (out == NULL) return NULL;
 	gdImageTiffCtx(im, out); /* what's an fg again? */
 	rv = gdDPExtractData(out, size);
 	out->gd_free(out);
http://cvs.php.net/viewvc.cgi/gd/libgd/src/gd_wbmp.c?r1=1.14&r2=1.15&diff_format=u
Index: gd/libgd/src/gd_wbmp.c
diff -u gd/libgd/src/gd_wbmp.c:1.14 gd/libgd/src/gd_wbmp.c:1.15
--- gd/libgd/src/gd_wbmp.c:1.14	Thu Jun 18 13:35:25 2009
+++ gd/libgd/src/gd_wbmp.c	Thu Jun 25 19:05:45 2009
@@ -204,6 +204,7 @@
 {
 	void *rv;
 	gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
+	if (out == NULL) return NULL;
 	gdImageWBMPCtx(im, fg, out);
 	rv = gdDPExtractData(out, size);
 	out->gd_free(out);
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/bmp/CMakeLists.txt?r1=1.1&r2=1.2&diff_format=u
Index: gd/libgd/tests/bmp/CMakeLists.txt
diff -u gd/libgd/tests/bmp/CMakeLists.txt:1.1 gd/libgd/tests/bmp/CMakeLists.txt:1.2
--- gd/libgd/tests/bmp/CMakeLists.txt:1.1	Thu Jun 18 13:35:25 2009
+++ gd/libgd/tests/bmp/CMakeLists.txt	Thu Jun 25 19:05:45 2009
@@ -1,5 +1,6 @@
 
 SET(TESTS_FILES
+	bmp_im2im
 	bmp_null
 )
 
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/bmp/Makefile.am?r1=1.1&r2=1.2&diff_format=u
Index: gd/libgd/tests/bmp/Makefile.am
diff -u gd/libgd/tests/bmp/Makefile.am:1.1 gd/libgd/tests/bmp/Makefile.am:1.2
--- gd/libgd/tests/bmp/Makefile.am:1.1	Thu Jun 18 13:35:25 2009
+++ gd/libgd/tests/bmp/Makefile.am	Thu Jun 25 19:05:45 2009
@@ -1,3 +1,3 @@
 ## Process this file with automake to produce Makefile.in -*-Makefile-*-
 
-EXTRA_DIST = CMakeLists.txt bmp_null.c
+EXTRA_DIST = CMakeLists.txt bmp_im2im.c bmp_null.c
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/gd/CMakeLists.txt?r1=1.1&r2=1.2&diff_format=u
Index: gd/libgd/tests/gd/CMakeLists.txt
diff -u gd/libgd/tests/gd/CMakeLists.txt:1.1 gd/libgd/tests/gd/CMakeLists.txt:1.2
--- gd/libgd/tests/gd/CMakeLists.txt:1.1	Thu Jun 18 13:35:25 2009
+++ gd/libgd/tests/gd/CMakeLists.txt	Thu Jun 25 19:05:45 2009
@@ -1,5 +1,6 @@
 
 SET(TESTS_FILES
+	gd_im2im
 	gd_null
 )
 
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/gd/Makefile.am?r1=1.1&r2=1.2&diff_format=u
Index: gd/libgd/tests/gd/Makefile.am
diff -u gd/libgd/tests/gd/Makefile.am:1.1 gd/libgd/tests/gd/Makefile.am:1.2
--- gd/libgd/tests/gd/Makefile.am:1.1	Thu Jun 18 13:35:25 2009
+++ gd/libgd/tests/gd/Makefile.am	Thu Jun 25 19:05:45 2009
@@ -1,3 +1,3 @@
 ## Process this file with automake to produce Makefile.in -*-Makefile-*-
 
-EXTRA_DIST = CMakeLists.txt  gd_null.c
+EXTRA_DIST = CMakeLists.txt gd_im2im.c gd_null.c
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/gd2/CMakeLists.txt?r1=1.6&r2=1.7&diff_format=u
Index: gd/libgd/tests/gd2/CMakeLists.txt
diff -u gd/libgd/tests/gd2/CMakeLists.txt:1.6 gd/libgd/tests/gd2/CMakeLists.txt:1.7
--- gd/libgd/tests/gd2/CMakeLists.txt:1.6	Thu Jun 18 13:35:25 2009
+++ gd/libgd/tests/gd2/CMakeLists.txt	Thu Jun 25 19:05:45 2009
@@ -2,6 +2,7 @@
 SET(TESTS_FILES
 	gd2_read
 	gd2_empty_file
+	gd2_im2im
 	gd2_null
 )
 
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/gd2/Makefile.am?r1=1.3&r2=1.4&diff_format=u
Index: gd/libgd/tests/gd2/Makefile.am
diff -u gd/libgd/tests/gd2/Makefile.am:1.3 gd/libgd/tests/gd2/Makefile.am:1.4
--- gd/libgd/tests/gd2/Makefile.am:1.3	Thu Jun 18 13:35:25 2009
+++ gd/libgd/tests/gd2/Makefile.am	Thu Jun 25 19:05:45 2009
@@ -1,4 +1,4 @@
 ## Process this file with automake to produce Makefile.in -*-Makefile-*-
 
-EXTRA_DIST = CMakeLists.txt conv_gd2_exp.gd2 conv_test_exp.png conv_test.gd2 empty.gd2 gd2_empty_file.c gd2_null.c gd2_read.c
+EXTRA_DIST = CMakeLists.txt conv_gd2_exp.gd2 conv_test_exp.png conv_test.gd2 empty.gd2 gd2_empty_file.c gd2_im2im.c gd2_null.c gd2_read.c
 
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/gdtest/gdtest.c?r1=1.1&r2=1.2&diff_format=u
Index: gd/libgd/tests/gdtest/gdtest.c
diff -u gd/libgd/tests/gdtest/gdtest.c:1.1 gd/libgd/tests/gdtest/gdtest.c:1.2
--- gd/libgd/tests/gdtest/gdtest.c:1.1	Tue Oct  2 09:01:53 2007
+++ gd/libgd/tests/gdtest/gdtest.c	Thu Jun 25 19:05:45 2009
@@ -37,8 +37,6 @@
 	gdImagePtr buf_diff, CuTestImageResult *result_ret)
 {
 	int x, y;
-	CuTestImageResult result = {0, 0};
-
 	int c1, c2;
 
 	for (y = 0; y < gdImageSY(buf_a); y++) {
@@ -96,15 +94,13 @@
 					diff_b = 255;
 				}
 
-				result.pixels_changed++;
-				gdImageSetPixel(buf_diff, x,y, gdTrueColorAlpha(diff_r, diff_g, diff_b, diff_a));
+				result_ret->pixels_changed++;
+				if (buf_diff) gdImageSetPixel(buf_diff, x,y, gdTrueColorAlpha(diff_r, diff_g, diff_b, diff_a));
 			} else {
-				gdImageSetPixel(buf_diff, x,y, gdTrueColorAlpha(255,255,255,0));
+				if (buf_diff) gdImageSetPixel(buf_diff, x,y, gdTrueColorAlpha(255,255,255,0));
 			}
 		}
 	}
-
-	*result_ret = result;
 }
 
 int gdTestImageCompareToImage(const char* file, int line, const char* message,
@@ -114,7 +110,7 @@
 	unsigned int width_a, height_a;
 	unsigned int width_b, height_b;
 	gdImagePtr surface_diff = NULL;
-	CuTestImageResult result;
+	CuTestImageResult result = {0, 0};
 
 	if (!actual) {
 		fprintf(stderr, "Image is NULL\n");
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/gif/CMakeLists.txt?r1=1.7&r2=1.8&diff_format=u
Index: gd/libgd/tests/gif/CMakeLists.txt
diff -u gd/libgd/tests/gif/CMakeLists.txt:1.7 gd/libgd/tests/gif/CMakeLists.txt:1.8
--- gd/libgd/tests/gif/CMakeLists.txt:1.7	Thu Jun 18 13:35:25 2009
+++ gd/libgd/tests/gif/CMakeLists.txt	Thu Jun 25 19:05:45 2009
@@ -1,5 +1,6 @@
 
 SET(TESTS_FILES
+	gif_im2im
 	gif_null
 	bug00005
 	bug00005_2
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/gif/Makefile.am?r1=1.3&r2=1.4&diff_format=u
Index: gd/libgd/tests/gif/Makefile.am
diff -u gd/libgd/tests/gif/Makefile.am:1.3 gd/libgd/tests/gif/Makefile.am:1.4
--- gd/libgd/tests/gif/Makefile.am:1.3	Thu Jun 18 13:35:25 2009
+++ gd/libgd/tests/gif/Makefile.am	Thu Jun 25 19:05:45 2009
@@ -1,3 +1,3 @@
 ## Process this file with automake to produce Makefile.in -*-Makefile-*-
 
-EXTRA_DIST = CMakeLists.txt gif_null.c bug00005_0.gif bug00005_2.c bug00005_2.gif bug00005.c bug00060.c bug00066.c bug00066.gif bug00005_1.gif  bug00005_2_exp.png  bug00005_3.gif  bug00006.c  bug00060.gif  bug00066_exp.png bug00181.c
+EXTRA_DIST = CMakeLists.txt gif_im2im.c gif_null.c bug00005_0.gif bug00005_2.c bug00005_2.gif bug00005.c bug00060.c bug00066.c bug00066.gif bug00005_1.gif  bug00005_2_exp.png  bug00005_3.gif  bug00006.c  bug00060.gif  bug00066_exp.png bug00181.c
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/jpeg/CMakeLists.txt?r1=1.7&r2=1.8&diff_format=u
Index: gd/libgd/tests/jpeg/CMakeLists.txt
diff -u gd/libgd/tests/jpeg/CMakeLists.txt:1.7 gd/libgd/tests/jpeg/CMakeLists.txt:1.8
--- gd/libgd/tests/jpeg/CMakeLists.txt:1.7	Thu Jun 18 13:35:25 2009
+++ gd/libgd/tests/jpeg/CMakeLists.txt	Thu Jun 25 19:05:45 2009
@@ -1,5 +1,6 @@
 
 SET(TESTS_FILES
+	jpeg_im2im
 	jpeg_null
 	jpeg_read
 	jpeg_empty_file
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/jpeg/Makefile.am?r1=1.3&r2=1.4&diff_format=u
Index: gd/libgd/tests/jpeg/Makefile.am
diff -u gd/libgd/tests/jpeg/Makefile.am:1.3 gd/libgd/tests/jpeg/Makefile.am:1.4
--- gd/libgd/tests/jpeg/Makefile.am:1.3	Thu Jun 18 13:35:25 2009
+++ gd/libgd/tests/jpeg/Makefile.am	Thu Jun 25 19:05:45 2009
@@ -1,3 +1,3 @@
 ## Process this file with automake to produce Makefile.in -*-Makefile-*-
 
-EXTRA_DIST = CMakeLists.txt jpeg_null.c conv_test_exp.png conv_test.jpeg empty.jpeg jpeg_empty_file.c jpeg_read.c jpeg_resolution.c
+EXTRA_DIST = CMakeLists.txt jpeg_im2im.c jpeg_null.c conv_test_exp.png conv_test.jpeg empty.jpeg jpeg_empty_file.c jpeg_read.c jpeg_resolution.c
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/png/CMakeLists.txt?r1=1.9&r2=1.10&diff_format=u
Index: gd/libgd/tests/png/CMakeLists.txt
diff -u gd/libgd/tests/png/CMakeLists.txt:1.9 gd/libgd/tests/png/CMakeLists.txt:1.10
--- gd/libgd/tests/png/CMakeLists.txt:1.9	Thu Jun 18 13:35:26 2009
+++ gd/libgd/tests/png/CMakeLists.txt	Thu Jun 25 19:05:45 2009
@@ -1,5 +1,6 @@
 
 SET(TESTS_FILES
+	png_im2im
 	png_null
 	png_resolution
 	bug00011
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/png/Makefile.am?r1=1.4&r2=1.5&diff_format=u
Index: gd/libgd/tests/png/Makefile.am
diff -u gd/libgd/tests/png/Makefile.am:1.4 gd/libgd/tests/png/Makefile.am:1.5
--- gd/libgd/tests/png/Makefile.am:1.4	Thu Jun 18 13:35:26 2009
+++ gd/libgd/tests/png/Makefile.am	Thu Jun 25 19:05:45 2009
@@ -1,3 +1,3 @@
 ## Process this file with automake to produce Makefile.in -*-Makefile-*-
 
-EXTRA_DIST = CMakeLists.txt bug00011.c bug00033.png bug00088_1_exp.png bug00088_2_exp.png bug00088.c bug00033.c bug00086.c bug00088_1.png bug00088_2.png bug00193.c emptyfile png_null.c png_resolution.c
+EXTRA_DIST = CMakeLists.txt bug00011.c bug00033.png bug00088_1_exp.png bug00088_2_exp.png bug00088.c bug00033.c bug00086.c bug00088_1.png bug00088_2.png bug00193.c emptyfile png_im2im.c png_null.c png_resolution.c
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/tiff/CMakeLists.txt?r1=1.1&r2=1.2&diff_format=u
Index: gd/libgd/tests/tiff/CMakeLists.txt
diff -u gd/libgd/tests/tiff/CMakeLists.txt:1.1 gd/libgd/tests/tiff/CMakeLists.txt:1.2
--- gd/libgd/tests/tiff/CMakeLists.txt:1.1	Thu Jun 18 13:35:26 2009
+++ gd/libgd/tests/tiff/CMakeLists.txt	Thu Jun 25 19:05:45 2009
@@ -1,5 +1,6 @@
 
 SET(TESTS_FILES
+	tiff_im2im
 	tiff_null
 )
 
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/tiff/Makefile.am?r1=1.1&r2=1.2&diff_format=u
Index: gd/libgd/tests/tiff/Makefile.am
diff -u gd/libgd/tests/tiff/Makefile.am:1.1 gd/libgd/tests/tiff/Makefile.am:1.2
--- gd/libgd/tests/tiff/Makefile.am:1.1	Thu Jun 18 13:35:26 2009
+++ gd/libgd/tests/tiff/Makefile.am	Thu Jun 25 19:05:45 2009
@@ -1,3 +1,3 @@
 ## Process this file with automake to produce Makefile.in -*-Makefile-*-
 
-EXTRA_DIST = CMakeLists.txt tiff_null.c
+EXTRA_DIST = CMakeLists.txt tiff_im2im.c tiff_null.c
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/wbmp/CMakeLists.txt?r1=1.1&r2=1.2&diff_format=u
Index: gd/libgd/tests/wbmp/CMakeLists.txt
diff -u gd/libgd/tests/wbmp/CMakeLists.txt:1.1 gd/libgd/tests/wbmp/CMakeLists.txt:1.2
--- gd/libgd/tests/wbmp/CMakeLists.txt:1.1	Thu Jun 18 13:35:26 2009
+++ gd/libgd/tests/wbmp/CMakeLists.txt	Thu Jun 25 19:05:45 2009
@@ -1,5 +1,6 @@
 
 SET(TESTS_FILES
+	wbmp_im2im
 	wbmp_null
 )
 
http://cvs.php.net/viewvc.cgi/gd/libgd/tests/wbmp/Makefile.am?r1=1.1&r2=1.2&diff_format=u
Index: gd/libgd/tests/wbmp/Makefile.am
diff -u gd/libgd/tests/wbmp/Makefile.am:1.1 gd/libgd/tests/wbmp/Makefile.am:1.2
--- gd/libgd/tests/wbmp/Makefile.am:1.1	Thu Jun 18 13:35:26 2009
+++ gd/libgd/tests/wbmp/Makefile.am	Thu Jun 25 19:05:45 2009
@@ -1,3 +1,3 @@
 ## Process this file with automake to produce Makefile.in -*-Makefile-*-
 
-EXTRA_DIST = CMakeLists.txt wbmp_null.c
+EXTRA_DIST = CMakeLists.txt wbmp_im2im.c wbmp_null.c

http://cvs.php.net/viewvc.cgi/gd/libgd/tests/bmp/bmp_im2im.c?view=markup&rev=1.1
Index: gd/libgd/tests/bmp/bmp_im2im.c
+++ gd/libgd/tests/bmp/bmp_im2im.c
#include <gd.h>
#include "gdtest.h"

int main()
{
	gdImagePtr src, dst;
	int r, g, b;
	void *p;
	int size = 0;
	int status = 0;
	CuTestImageResult result = {0, 0};

	src = gdImageCreate(100, 100);
	if (src == NULL) {
		printf("could not create src\n");
		return 1;
	}
	r = gdImageColorAllocate(src, 0xFF, 0, 0);
	g = gdImageColorAllocate(src, 0, 0xFF, 0);
	b = gdImageColorAllocate(src, 0, 0, 0xFF);
	gdImageFilledRectangle(src, 0, 0, 99, 99, r);
	gdImageRectangle(src, 20, 20, 79, 79, g);
	gdImageEllipse(src, 70, 25, 30, 20, b);

#define OUTPUT_BMP(name) do {							\
		FILE *fp;										\
														\
		fp = fopen("bmp_im2im_" #name ".bmp", "wb");	\
		if (fp) {										\
			gdImageBmp(name, fp, 1);					\
			fclose(fp);									\
		}												\
	} while (0)

	OUTPUT_BMP(src);
	p = gdImageBmpPtr(src, &size, 1);
	if (p == NULL) {
		status = 1;
		printf("p is null\n");
		goto door0;
	}
	if (size <= 0) {
		status = 1;
		printf("size is non-positive\n");
		goto door1;
	}

	dst = gdImageCreateFromBmpPtr(size, p);
	if (dst == NULL) {
		status = 1;
		printf("could not create dst\n");
		goto door1;
	}
	OUTPUT_BMP(dst);
	gdTestImageDiff(src, dst, NULL, &result);
	if (result.pixels_changed > 0) {
		status = 1;
		printf("pixels changed: %d\n", result.pixels_changed);
	}
	gdImageDestroy(dst);
 door1:
	gdFree(p);
 door0:
	gdImageDestroy(src);
	return status;
}

http://cvs.php.net/viewvc.cgi/gd/libgd/tests/gd/gd_im2im.c?view=markup&rev=1.1
Index: gd/libgd/tests/gd/gd_im2im.c
+++ gd/libgd/tests/gd/gd_im2im.c
#include <gd.h>
#include "gdtest.h"

int main()
{
	gdImagePtr src, dst;
	int r, g, b;
	void *p;
	int size = 0;
	int status = 0;
	CuTestImageResult result = {0, 0};

	src = gdImageCreate(100, 100);
	if (src == NULL) {
		printf("could not create src\n");
		return 1;
	}
	r = gdImageColorAllocate(src, 0xFF, 0, 0);
	g = gdImageColorAllocate(src, 0, 0xFF, 0);
	b = gdImageColorAllocate(src, 0, 0, 0xFF);
	gdImageFilledRectangle(src, 0, 0, 99, 99, r);
	gdImageRectangle(src, 20, 20, 79, 79, g);
	gdImageEllipse(src, 70, 25, 30, 20, b);

#define OUTPUT_GD(x) do {						\
		FILE *fp;								\
												\
		fp = fopen("gd_im2im_" #x ".gd", "wb");	\
		if (fp) {								\
			gdImageGd(x, fp);					\
			fclose(fp);							\
		}										\
	} while (0)

	OUTPUT_GD(src);
	p = gdImageGdPtr(src, &size);
	if (p == NULL) {
		status = 1;
		printf("p is null\n");
		goto door0;
	}
	if (size <= 0) {
		status = 1;
		printf("size is non-positive\n");
		goto door1;
	}

	dst = gdImageCreateFromGdPtr(size, p);
	if (dst == NULL) {
		status = 1;
		printf("could not create dst\n");
		goto door1;
	}
	OUTPUT_GD(dst);
	gdTestImageDiff(src, dst, NULL, &result);
	if (result.pixels_changed > 0) {
		status = 1;
		printf("pixels changed: %d\n", result.pixels_changed);
	}
	gdImageDestroy(dst);
 door1:
	gdFree(p);
 door0:
	gdImageDestroy(src);
	return status;
}

http://cvs.php.net/viewvc.cgi/gd/libgd/tests/gd2/gd2_im2im.c?view=markup&rev=1.1
Index: gd/libgd/tests/gd2/gd2_im2im.c
+++ gd/libgd/tests/gd2/gd2_im2im.c
#include <gd.h>
#include "gdtest.h"

int main()
{
	gdImagePtr src, dst;
	int r, g, b;
	void *p;
	int size = 0;
	int status = 0;
	CuTestImageResult result = {0, 0};

	src = gdImageCreate(100, 100);
	if (src == NULL) {
		printf("could not create src\n");
		return 1;
	}
	r = gdImageColorAllocate(src, 0xFF, 0, 0);
	g = gdImageColorAllocate(src, 0, 0xFF, 0);
	b = gdImageColorAllocate(src, 0, 0, 0xFF);
	gdImageFilledRectangle(src, 0, 0, 99, 99, r);
	gdImageRectangle(src, 20, 20, 79, 79, g);
	gdImageEllipse(src, 70, 25, 30, 20, b);

#define OUTPUT_GD2(x) do {												\
		FILE *fp;														\
																		\
		fp = fopen("gd2_im2im_" #x ".gd2", "wb");						\
		if (fp) {														\
			gdImageGd2(x, fp, (GD2_CHUNKSIZE_MIN+GD2_CHUNKSIZE_MAX)/2, GD2_FMT_COMPRESSED); \
			fclose(fp);													\
		}																\
	} while (0)

	OUTPUT_GD2(src);
	p = gdImageGd2Ptr(src, (GD2_CHUNKSIZE_MIN+GD2_CHUNKSIZE_MAX)/2, GD2_FMT_COMPRESSED, &size);
	if (p == NULL) {
		status = 1;
		printf("p is null\n");
		goto door0;
	}
	if (size <= 0) {
		status = 1;
		printf("size is non-positive\n");
		goto door1;
	}

	dst = gdImageCreateFromGd2Ptr(size, p);
	if (dst == NULL) {
		status = 1;
		printf("could not create dst\n");
		goto door1;
	}
	OUTPUT_GD2(dst);
	gdTestImageDiff(src, dst, NULL, &result);
	if (result.pixels_changed > 0) {
		status = 1;
		printf("pixels changed: %d\n", result.pixels_changed);
	}
	gdImageDestroy(dst);
 door1:
	gdFree(p);
 door0:
	gdImageDestroy(src);
	return status;
}

http://cvs.php.net/viewvc.cgi/gd/libgd/tests/gif/gif_im2im.c?view=markup&rev=1.1
Index: gd/libgd/tests/gif/gif_im2im.c
+++ gd/libgd/tests/gif/gif_im2im.c
#include <gd.h>
#include "gdtest.h"

int main()
{
	gdImagePtr src, dst;
	int r, g, b;
	void *p;
	int size = 0;
	int status = 0;
	CuTestImageResult result = {0, 0};

	src = gdImageCreate(100, 100);
	if (src == NULL) {
		printf("could not create src\n");
		return 1;
	}
	r = gdImageColorAllocate(src, 0xFF, 0, 0);
	g = gdImageColorAllocate(src, 0, 0xFF, 0);
	b = gdImageColorAllocate(src, 0, 0, 0xFF);
	gdImageFilledRectangle(src, 0, 0, 99, 99, r);
	gdImageRectangle(src, 20, 20, 79, 79, g);
	gdImageEllipse(src, 70, 25, 30, 20, b);

#define OUTPUT_GIF(name) do {							\
		FILE *fp;										\
														\
		fp = fopen("gif_im2im_" #name ".gif", "wb");	\
		if (fp) {										\
			gdImageGif(name, fp);						\
			fclose(fp);									\
		}												\
	} while (0)

	OUTPUT_GIF(src);
	p = gdImageGifPtr(src, &size);
	if (p == NULL) {
		status = 1;
		printf("p is null\n");
		goto door0;
	}
	if (size <= 0) {
		status = 1;
		printf("size is non-positive\n");
		goto door1;
	}

	dst = gdImageCreateFromGifPtr(size, p);
	if (dst == NULL) {
		status = 1;
		printf("could not create dst\n");
		goto door1;
	}
	OUTPUT_GIF(dst);
	gdTestImageDiff(src, dst, NULL, &result);
	if (result.pixels_changed > 0) {
		status = 1;
		printf("pixels changed: %d\n", result.pixels_changed);
	}
	gdImageDestroy(dst);
 door1:
	gdFree(p);
 door0:
	gdImageDestroy(src);
	return status;
}

http://cvs.php.net/viewvc.cgi/gd/libgd/tests/jpeg/jpeg_im2im.c?view=markup&rev=1.1
Index: gd/libgd/tests/jpeg/jpeg_im2im.c
+++ gd/libgd/tests/jpeg/jpeg_im2im.c
#include <gd.h>
#include "gdtest.h"

int main()
{
	gdImagePtr src, dst;
	int r, g, b;
	void *p;
	int size = 0;
	int status = 0;
#if 0
	CuTestImageResult result = {0, 0};
#endif

	src = gdImageCreateTrueColor(100, 100);
	if (src == NULL) {
		printf("could not create src\n");
		return 1;
	}
	r = gdImageColorAllocate(src, 0xFF, 0, 0);
	g = gdImageColorAllocate(src, 0, 0xFF, 0);
	b = gdImageColorAllocate(src, 0, 0, 0xFF);
	gdImageFilledRectangle(src, 0, 0, 99, 99, r);
	gdImageRectangle(src, 20, 20, 79, 79, g);
	gdImageEllipse(src, 70, 25, 30, 20, b);

#define OUTPUT_JPEG(name) do {							\
		FILE *fp;										\
														\
		fp = fopen("jpeg_im2im_" #name ".jpeg", "wb");	\
		if (fp) {										\
			gdImageJpeg(name, fp, 100);					\
			fclose(fp);									\
		}												\
	} while (0)

	OUTPUT_JPEG(src);
	p = gdImageJpegPtr(src, &size, 100);
	if (p == NULL) {
		status = 1;
		printf("p is null\n");
		goto door0;
	}
	if (size <= 0) {
		status = 1;
		printf("size is non-positive\n");
		goto door1;
	}

	dst = gdImageCreateFromJpegPtr(size, p);
	if (dst == NULL) {
		status = 1;
		printf("could not create dst\n");
		goto door1;
	}
	OUTPUT_JPEG(dst);
#if 0
	gdTestImageDiff(src, dst, NULL, &result);
	if (result.pixels_changed > 0) {
		status = 1;
		printf("pixels changed: %d\n", result.pixels_changed);
	}
#endif
	gdImageDestroy(dst);
 door1:
	gdFree(p);
 door0:
	gdImageDestroy(src);
	return status;
}

http://cvs.php.net/viewvc.cgi/gd/libgd/tests/png/png_im2im.c?view=markup&rev=1.1
Index: gd/libgd/tests/png/png_im2im.c
+++ gd/libgd/tests/png/png_im2im.c
#include <gd.h>
#include "gdtest.h"

int main()
{
	gdImagePtr src, dst;
	int r, g, b;
	void *p;
	int size = 0;
	int status = 0;
	CuTestImageResult result = {0, 0};

	src = gdImageCreate(100, 100);
	if (src == NULL) {
		printf("could not create src\n");
		return 1;
	}
	r = gdImageColorAllocate(src, 0xFF, 0, 0);
	g = gdImageColorAllocate(src, 0, 0xFF, 0);
	b = gdImageColorAllocate(src, 0, 0, 0xFF);
	gdImageFilledRectangle(src, 0, 0, 99, 99, r);
	gdImageRectangle(src, 20, 20, 79, 79, g);
	gdImageEllipse(src, 70, 25, 30, 20, b);

#define OUTPUT_PNG(name) do {							\
		FILE *fp;										\
														\
		fp = fopen("png_im2im_" #name ".png", "wb");	\
		if (fp) {										\
			gdImagePng(name, fp);						\
			fclose(fp);									\
		}												\
	} while (0)

	OUTPUT_PNG(src);
	p = gdImagePngPtr(src, &size);
	if (p == NULL) {
		status = 1;
		printf("p is null\n");
		goto door0;
	}
	if (size <= 0) {
		status = 1;
		printf("size is non-positive\n");
		goto door1;
	}

	dst = gdImageCreateFromPngPtr(size, p);
	if (dst == NULL) {
		status = 1;
		printf("could not create dst\n");
		goto door1;
	}
	OUTPUT_PNG(dst);
	gdTestImageDiff(src, dst, NULL, &result);
	if (result.pixels_changed > 0) {
		status = 1;
		printf("pixels changed: %d\n", result.pixels_changed);
	}
	gdImageDestroy(dst);
 door1:
	gdFree(p);
 door0:
	gdImageDestroy(src);
	return status;
}

http://cvs.php.net/viewvc.cgi/gd/libgd/tests/tiff/tiff_im2im.c?view=markup&rev=1.1
Index: gd/libgd/tests/tiff/tiff_im2im.c
+++ gd/libgd/tests/tiff/tiff_im2im.c
#include <gd.h>
#include "gdtest.h"

int main()
{
	gdImagePtr src, dst;
	int r, g, b;
	void *p;
	int size = 0;
	int status = 0;
#if 0
	CuTestImageResult result = {0, 0};
#endif

	src = gdImageCreate(100, 100);
	if (src == NULL) {
		printf("could not create src\n");
		return 1;
	}
	r = gdImageColorAllocate(src, 0xFF, 0, 0);
	g = gdImageColorAllocate(src, 0, 0xFF, 0);
	b = gdImageColorAllocate(src, 0, 0, 0xFF);
	gdImageFilledRectangle(src, 0, 0, 99, 99, r);
	gdImageRectangle(src, 20, 20, 79, 79, g);
	gdImageEllipse(src, 70, 25, 30, 20, b);

#define OUTPUT_TIFF(name) do {							\
		FILE *fp;										\
														\
		fp = fopen("tiff_im2im_" #name ".tiff", "wb");	\
		if (fp) {										\
			gdImageTiff(name, fp);						\
			fclose(fp);									\
		}												\
	} while (0)

	OUTPUT_TIFF(src);
	p = gdImageTiffPtr(src, &size);
	if (p == NULL) {
		status = 1;
		printf("p is null\n");
		goto door0;
	}
	if (size <= 0) {
		status = 1;
		printf("size is non-positive\n");
		goto door1;
	}

	dst = gdImageCreateFromTiffPtr(size, p);
	if (dst == NULL) {
		status = 1;
		printf("could not create dst\n");
		goto door1;
	}
	OUTPUT_TIFF(dst);
#if 0
	gdTestImageDiff(src, dst, NULL, &result);
	if (result.pixels_changed > 0) {
		status = 1;
		printf("pixels changed: %d\n", result.pixels_changed);
	}
#endif
	gdImageDestroy(dst);
 door1:
	gdFree(p);
 door0:
	gdImageDestroy(src);
	return status;
}

http://cvs.php.net/viewvc.cgi/gd/libgd/tests/wbmp/wbmp_im2im.c?view=markup&rev=1.1
Index: gd/libgd/tests/wbmp/wbmp_im2im.c
+++ gd/libgd/tests/wbmp/wbmp_im2im.c
#include <gd.h>
#include "gdtest.h"

int main()
{
	gdImagePtr src, dst;
	int w, b;
	void *p;
	int size = 0;
	int status = 0;
	CuTestImageResult result = {0, 0};

	src = gdImageCreate(100, 100);
	if (src == NULL) {
		printf("could not create src\n");
		return 1;
	}
	w = gdImageColorAllocate(src, 0xFF, 0xFF, 0xFF);
	b = gdImageColorAllocate(src, 0, 0, 0);
	gdImageRectangle(src, 20, 20, 79, 79, b);
	gdImageEllipse(src, 70, 25, 30, 20, b);

#define OUTPUT_WBMP(name) do {							\
		FILE *fp;										\
														\
		fp = fopen("wbmp_im2im_" #name ".wbmp", "wb");	\
		if (fp) {										\
			gdImageWBMP(name, 1, fp);					\
			fclose(fp);									\
		}												\
	} while (0)

	OUTPUT_WBMP(src);
	p = gdImageWBMPPtr(src, &size, 1);
	if (p == NULL) {
		status = 1;
		printf("p is null\n");
		goto door0;
	}
	if (size <= 0) {
		status = 1;
		printf("size is non-positive\n");
		goto door1;
	}

	dst = gdImageCreateFromWBMPPtr(size, p);
	if (dst == NULL) {
		status = 1;
		printf("could not create dst\n");
		goto door1;
	}
	OUTPUT_WBMP(dst);
	gdTestImageDiff(src, dst, NULL, &result);
	if (result.pixels_changed > 0) {
		status = 1;
		printf("pixels changed: %d\n", result.pixels_changed);
	}
	gdImageDestroy(dst);
 door1:
	gdFree(p);
 door0:
	gdImageDestroy(src);
	return status;
}

--tabe1245956746--