From ca019ad49cb3ef3140341fd4d109ecd1fcf65447 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 23 Jul 2014 09:24:45 +0200 Subject: [PATCH] fix Imagick::count() with PHP 5.6.0RC2 --- imagick.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/imagick.c b/imagick.c index c1b97d1..fa1c30e 100644 --- a/imagick.c +++ b/imagick.c @@ -2583,6 +2583,19 @@ static void php_imagick_init_globals(zen #endif } +#if defined(HAVE_SPL) +static int php_imagick_count_elements(zval *object, long *count TSRMLS_DC) /* {{{ */ + { + php_imagick_object *intern= (php_imagick_object *)zend_object_store_get_object(object TSRMLS_CC); + + if (intern->magick_wand) { + *count = MagickGetNumberImages(intern->magick_wand); + return SUCCESS; + } + return FAILURE; + } +#endif + #if PHP_VERSION_ID < 50399 static zval *php_imagick_read_property(zval *object, zval *member, int type TSRMLS_DC) #else @@ -2796,6 +2809,7 @@ PHP_MINIT_FUNCTION(imagick) imagick_object_handlers.read_property = php_imagick_read_property; php_imagick_sc_entry = zend_register_internal_class(&ce TSRMLS_CC); #if defined(HAVE_SPL) + imagick_object_handlers.count_elements = php_imagick_count_elements; zend_class_implements(php_imagick_sc_entry TSRMLS_CC, 2, zend_ce_iterator, spl_ce_Countable); #else zend_class_implements(php_imagick_sc_entry TSRMLS_CC, 1, zend_ce_iterator);