59
59
#include "gd_compat.h"
60
60
#include "gd_image_object.h"
61
61
62
- static int le_gd , le_gd_font ;
62
+ static int le_gd_font ;
63
63
64
64
#include <gd.h>
65
65
#include <gd_errors.h>
@@ -68,7 +68,6 @@ static int le_gd, le_gd_font;
68
68
#include <gdfontmb.h> /* 3 Medium bold font */
69
69
#include <gdfontl.h> /* 4 Large font */
70
70
#include <gdfontg.h> /* 5 Giant font */
71
- #include <zend.h>
72
71
73
72
#if defined(HAVE_GD_FREETYPE ) && defined(HAVE_GD_BUNDLED )
74
73
# include <ft2build.h>
@@ -308,14 +307,6 @@ PHP_INI_BEGIN()
308
307
PHP_INI_END ()
309
308
/* }}} */
310
309
311
- /* {{{ php_free_gd_image
312
- */
313
- static void php_free_gd_image (zend_resource * rsrc )
314
- {
315
- gdImageDestroy ((gdImagePtr ) rsrc -> ptr );
316
- }
317
- /* }}} */
318
-
319
310
/* {{{ php_free_gd_font
320
311
*/
321
312
static void php_free_gd_font (zend_resource * rsrc )
@@ -374,13 +365,12 @@ static zend_object* gd_ext_image_object_create(zend_class_entry * class_type) {
374
365
return & intern -> std ;
375
366
};
376
367
368
+
377
369
static void gd_ext_image_object_free (zend_object * intern ) {
378
- gd_ext_image_object * img_obj_ptr = gd_ext_image_object_from_ptr (intern );
379
- if (img_obj_ptr -> image != NULL ) {
380
- gdImageDestroy (img_obj_ptr -> image );
381
- img_obj_ptr -> image = NULL ;
382
- }
383
- zend_object_std_dtor (intern );
370
+ gd_ext_image_object * img_obj_ptr = gd_ext_image_object_from_ptr (intern );
371
+ gdImageDestroy (img_obj_ptr -> image );
372
+ img_obj_ptr -> image = NULL ;
373
+ zend_object_std_dtor (intern );
384
374
};
385
375
386
376
static zend_object * gd_ext_image_object_init (zval * val , gdImagePtr image ) {
@@ -393,28 +383,20 @@ static zend_object* gd_ext_image_object_init(zval* val, gdImagePtr image) {
393
383
*/
394
384
PHP_MINIT_FUNCTION (gd )
395
385
{
396
- le_gd = zend_register_list_destructors_ex (php_free_gd_image , NULL , "gd" , module_number );
397
386
le_gd_font = zend_register_list_destructors_ex (php_free_gd_font , NULL , "gd font" , module_number );
398
387
399
- /*
400
- * Class instance that represents a GD image that has been created.
401
- *
402
- * This replaces the use of resources
403
- */
404
-
405
- zend_class_entry ce ;
406
- INIT_CLASS_ENTRY (ce , "GdImage" , gd_image_methods );
407
- ce .ce_flags |= ZEND_ACC_FINAL ;
408
- ce .create_object = gd_ext_image_object_create ;
409
- gd_image_ce = zend_register_internal_class (& ce );
388
+ zend_class_entry ce ;
389
+ INIT_CLASS_ENTRY (ce , "GdImage" , gd_image_methods );
390
+ gd_image_ce = zend_register_internal_class (& ce );
391
+ gd_image_ce -> ce_flags |= ZEND_ACC_FINAL ;
392
+ gd_image_ce -> create_object = gd_ext_image_object_create ;
410
393
411
394
/* setting up the object handlers for the GdImage class */
412
- memcpy (& gd_ext_image_object_handlers , & std_object_handlers , sizeof (zend_object_handlers ));
413
- gd_ext_image_object_handlers .free_obj = gd_ext_image_object_free ;
395
+ memcpy (& gd_ext_image_object_handlers , & std_object_handlers , sizeof (zend_object_handlers ));
396
+ gd_ext_image_object_handlers .free_obj = gd_ext_image_object_free ;
414
397
gd_ext_image_object_handlers .offset = XtOffsetOf (gd_ext_image_object , std );
415
398
416
399
417
-
418
400
#if defined(HAVE_GD_FREETYPE ) && defined(HAVE_GD_BUNDLED )
419
401
gdFontCacheMutexSetup ();
420
402
#endif
@@ -722,13 +704,6 @@ PHP_FUNCTION(gd_info)
722
704
}
723
705
/* }}} */
724
706
725
- /* Need this for cpdf. See also comment in file.c php3i_get_le_fp() */
726
- PHP_GD_API int phpi_get_le_gd (void )
727
- {
728
- return le_gd ;
729
- }
730
- /* }}} */
731
-
732
707
#define FLIPWORD (a ) (((a & 0xff000000) >> 24) | ((a & 0x00ff0000) >> 8) | ((a & 0x0000ff00) << 8) | ((a & 0x000000ff) << 24))
733
708
734
709
/* {{{ proto int imageloadfont(string filename)
@@ -1495,7 +1470,7 @@ PHP_FUNCTION(imagecreate)
1495
1470
RETURN_FALSE ;
1496
1471
}
1497
1472
1498
- RETURN_OBJ (gd_ext_image_object_init (return_value , im ));
1473
+ RETURN_OBJ (gd_ext_image_object_init (return_value , im ));
1499
1474
}
1500
1475
/* }}} */
1501
1476
@@ -1695,7 +1670,7 @@ PHP_FUNCTION(imagecreatefromstring)
1695
1670
RETURN_FALSE ;
1696
1671
}
1697
1672
1698
- RETURN_OBJ (gd_ext_image_object_init (return_value , im ));
1673
+ RETURN_OBJ (gd_ext_image_object_init (return_value , im ));
1699
1674
}
1700
1675
/* }}} */
1701
1676
@@ -1812,7 +1787,7 @@ static void _php_image_create_from(INTERNAL_FUNCTION_PARAMETERS, int image_type,
1812
1787
1813
1788
/* register_im: */
1814
1789
if (im ) {
1815
- RETVAL_OBJ (gd_ext_image_object_init (return_value , im ));
1790
+ RETVAL_OBJ (gd_ext_image_object_init (return_value , im ));
1816
1791
php_stream_close (stream );
1817
1792
return ;
1818
1793
}
@@ -3116,7 +3091,7 @@ PHP_FUNCTION(imagecopyresized)
3116
3091
dstW = DW ;
3117
3092
3118
3093
if (dstW <= 0 || dstH <= 0 || srcW <= 0 || srcH <= 0 ) {
3119
- zend_value_error ( "Invalid image dimensions" );
3094
+ zend_value_error ("Invalid image dimensions" );
3120
3095
RETURN_FALSE ;
3121
3096
}
3122
3097
@@ -3361,7 +3336,7 @@ static void php_image_filter_brightness(INTERNAL_FUNCTION_PARAMETERS)
3361
3336
return ;
3362
3337
}
3363
3338
3364
- im_src = GD_IMAGE_PTR_FROM_ZVAL_P (SIM );
3339
+ im_src = GD_IMAGE_PTR_FROM_ZVAL_P (SIM );
3365
3340
3366
3341
if (gdImageBrightness (im_src , (int )brightness ) == 1 ) {
3367
3342
RETURN_TRUE ;
@@ -3380,7 +3355,7 @@ static void php_image_filter_contrast(INTERNAL_FUNCTION_PARAMETERS)
3380
3355
return ;
3381
3356
}
3382
3357
3383
- im_src = GD_IMAGE_PTR_FROM_ZVAL_P (SIM );
3358
+ im_src = GD_IMAGE_PTR_FROM_ZVAL_P (SIM );
3384
3359
3385
3360
if (gdImageContrast (im_src , (int )contrast ) == 1 ) {
3386
3361
RETURN_TRUE ;
@@ -3400,8 +3375,8 @@ static void php_image_filter_colorize(INTERNAL_FUNCTION_PARAMETERS)
3400
3375
return ;
3401
3376
}
3402
3377
3403
- im_src = GD_IMAGE_PTR_FROM_ZVAL_P (SIM );
3404
-
3378
+ im_src = GD_IMAGE_PTR_FROM_ZVAL_P (SIM );
3379
+
3405
3380
if (gdImageColor (im_src , (int ) r , (int ) g , (int ) b , (int ) a ) == 1 ) {
3406
3381
RETURN_TRUE ;
3407
3382
}
@@ -3475,7 +3450,7 @@ static void php_image_filter_smooth(INTERNAL_FUNCTION_PARAMETERS)
3475
3450
return ;
3476
3451
}
3477
3452
3478
- im_src = GD_IMAGE_PTR_FROM_ZVAL_P (SIM );
3453
+ im_src = GD_IMAGE_PTR_FROM_ZVAL_P (SIM );
3479
3454
3480
3455
if (gdImageSmooth (im_src , (float )weight )== 1 ) {
3481
3456
RETURN_TRUE ;
@@ -3738,7 +3713,7 @@ PHP_FUNCTION(imagecrop)
3738
3713
RETURN_FALSE ;
3739
3714
}
3740
3715
3741
- RETURN_OBJ (gd_ext_image_object_init (return_value , im_crop ));
3716
+ RETURN_OBJ (gd_ext_image_object_init (return_value , im_crop ));
3742
3717
}
3743
3718
/* }}} */
3744
3719
@@ -3785,7 +3760,7 @@ PHP_FUNCTION(imagecropauto)
3785
3760
RETURN_FALSE ;
3786
3761
}
3787
3762
3788
- RETURN_OBJ (gd_ext_image_object_init (return_value , im_crop ));
3763
+ RETURN_OBJ (gd_ext_image_object_init (return_value , im_crop ));
3789
3764
}
3790
3765
/* }}} */
3791
3766
@@ -3840,7 +3815,7 @@ PHP_FUNCTION(imagescale)
3840
3815
RETURN_FALSE ;
3841
3816
}
3842
3817
3843
- RETURN_OBJ (gd_ext_image_object_init (return_value , im_scaled ));
3818
+ RETURN_OBJ (gd_ext_image_object_init (return_value , im_scaled ));
3844
3819
}
3845
3820
/* }}} */
3846
3821
@@ -3864,8 +3839,8 @@ PHP_FUNCTION(imageaffine)
3864
3839
return ;
3865
3840
}
3866
3841
3867
- src = GD_IMAGE_PTR_FROM_ZVAL_P (IM );
3868
-
3842
+ src = GD_IMAGE_PTR_FROM_ZVAL_P (IM );
3843
+
3869
3844
if ((nelems = zend_hash_num_elements (Z_ARRVAL_P (z_affine ))) != 6 ) {
3870
3845
zend_value_error ("Affine array must have six elements" );
3871
3846
return ;
@@ -3935,7 +3910,7 @@ PHP_FUNCTION(imageaffine)
3935
3910
RETURN_FALSE ;
3936
3911
}
3937
3912
3938
- RETURN_OBJ (gd_ext_image_object_init (return_value , dst ));
3913
+ RETURN_OBJ (gd_ext_image_object_init (return_value , dst ));
3939
3914
}
3940
3915
/* }}} */
3941
3916
0 commit comments