From: Ilia Alshanetsky Date: Wed, 30 Oct 2002 01:05:16 +0000 (+0000) Subject: This patch allows compilation of gd against non-bundled gd library older X-Git-Tag: php-4.3.0RC1~431 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7150658615d55fd50c6e3c2bc070138d6c075714;p=php This patch allows compilation of gd against non-bundled gd library older then 2.0.4. --- diff --git a/ext/gd/config.m4 b/ext/gd/config.m4 index b13228bbf0..5cc6035af7 100644 --- a/ext/gd/config.m4 +++ b/ext/gd/config.m4 @@ -231,6 +231,7 @@ AC_DEFUN(PHP_GD_CHECK_VERSION,[ PHP_CHECK_LIBRARY(gd, gdImageCreateFromXpm, [AC_DEFINE(HAVE_GD_XPM, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ]) PHP_CHECK_LIBRARY(gd, gdImageCreateFromGd2, [AC_DEFINE(HAVE_GD_GD2, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ]) PHP_CHECK_LIBRARY(gd, gdImageCreateTrueColor, [AC_DEFINE(HAVE_LIBGD20, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ]) + PHP_CHECK_LIBRARY(gd, gdFreeFontCache, [AC_DEFINE(HAVE_LIBGD204, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ]) PHP_CHECK_LIBRARY(gd, gdImageSetTile, [AC_DEFINE(HAVE_GD_IMAGESETTILE, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ]) PHP_CHECK_LIBRARY(gd, gdImageEllipse, [AC_DEFINE(HAVE_GD_IMAGEELLIPSE, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ]) PHP_CHECK_LIBRARY(gd, gdImageSetBrush, [AC_DEFINE(HAVE_GD_IMAGESETBRUSH, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ]) @@ -275,6 +276,7 @@ dnl These are always available with bundled library AC_DEFINE(HAVE_LIBGD13, 1, [ ]) AC_DEFINE(HAVE_LIBGD15, 1, [ ]) AC_DEFINE(HAVE_LIBGD20, 1, [ ]) + AC_DEFINE(HAVE_LIBGD204, 1, [ ]) AC_DEFINE(HAVE_GD_IMAGESETTILE, 1, [ ]) AC_DEFINE(HAVE_GD_IMAGESETBRUSH, 1, [ ]) AC_DEFINE(HAVE_GDIMAGECOLORRESOLVE, 1, [ ]) diff --git a/ext/gd/gd.c b/ext/gd/gd.c index 0f560b0c01..1177b095a3 100644 --- a/ext/gd/gd.c +++ b/ext/gd/gd.c @@ -1073,10 +1073,19 @@ static int _php_image_type (char data[8]) io_ctx = gdNewDynamicCtx (8, data); if (io_ctx) { if (getmbi((int(*)(void*))gdGetC, io_ctx) == 0 && skipheader((int(*)(void*))gdGetC, io_ctx) == 0 ) { +#if HAVE_LIBGD204 io_ctx->gd_free(io_ctx); +#else + io_ctx->free(io_ctx); +#endif return PHP_GDIMG_TYPE_WBM; - } else + } else { +#if HAVE_LIBGD204 io_ctx->gd_free(io_ctx); +#else + io_ctx->free(io_ctx); +#endif + } } } #endif @@ -1253,7 +1262,12 @@ static void _php_image_create_from(INTERNAL_FUNCTION_PARAMETERS, int image_type, } else { im = (*ioctx_func_p)(io_ctx); } +#if HAVE_LIBGD204 io_ctx->gd_free(io_ctx); +#else + io_ctx->free(io_ctx); +#endif + #endif } else { diff --git a/ext/gd/gd_ctx.c b/ext/gd/gd_ctx.c index e836757f07..8d94224816 100644 --- a/ext/gd/gd_ctx.c +++ b/ext/gd/gd_ctx.c @@ -67,7 +67,11 @@ static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type, ctx = emalloc(sizeof(gdIOCtx)); ctx->putC = _php_image_output_putc; ctx->putBuf = _php_image_output_putbuf; +#if HAVE_LIBGD204 ctx->gd_free = _php_image_output_ctxfree; +#else + ctx->free = _php_image_output_ctxfree; +#endif #if APACHE && defined(CHARSET_EBCDIC) /* XXX this is unlikely to work any more thies@thieso.net */ @@ -94,8 +98,12 @@ static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type, (*func_p)(im, ctx); break; } - + +#if HAVE_LIBGD204 ctx->gd_free(ctx); +#else + ctx->free(ctx); +#endif if(fp) { fflush(fp);