From: Andrei Zmievski Date: Sat, 5 Mar 2005 00:45:47 +0000 (+0000) Subject: Check that object can actually return a class entry. I need this for a X-Git-Tag: RELEASE_0_3~79 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f8fc9a3256d5c03dbf269099887f482cf776122d;p=php Check that object can actually return a class entry. I need this for a class-entry-less helper objects that should not be present in the class table. --- diff --git a/ext/standard/array.c b/ext/standard/array.c index 9848de248d..1180c9e450 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -323,7 +323,7 @@ PHP_FUNCTION(count) /* it the object implements Countable we call its count() method */ zval *retval; - if (instanceof_function(Z_OBJCE_P(array), spl_ce_Countable TSRMLS_CC)) { + if (Z_OBJ_HT_P(array)->get_class_entry && instanceof_function(Z_OBJCE_P(array), spl_ce_Countable TSRMLS_CC)) { zend_call_method_with_0_params(&array, NULL, NULL, "count", &retval); RETVAL_LONG(Z_LVAL_P(retval)); zval_ptr_dtor(&retval); @@ -331,7 +331,7 @@ PHP_FUNCTION(count) } #endif /* if not we return the number of properties (not taking visibility into account) */ - if (Z_OBJ_HT(*array)->count_elements) { + if (Z_OBJ_HT_P(array)->count_elements) { RETVAL_LONG(1); if (SUCCESS == Z_OBJ_HT(*array)->count_elements(array, &Z_LVAL_P(return_value) TSRMLS_CC)) { return;