From: Marcus Boerger Date: Sat, 30 Oct 2004 19:16:39 +0000 (+0000) Subject: MFH change zend_object_handlers->get_method() X-Git-Tag: php-5.0.3RC1~111 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a5a29a86df315125e03219a892297aaccb017e87;p=php MFH change zend_object_handlers->get_method() --- diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index f84a77ba92..cb2c4b049e 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -2514,7 +2514,7 @@ int zend_init_method_call_handler(ZEND_OPCODE_HANDLER_ARGS) } /* First, locate the function. */ - EX(fbc) = Z_OBJ_HT_P(EX(object))->get_method(EX(object), function_name_strval, function_name_strlen TSRMLS_CC); + EX(fbc) = Z_OBJ_HT_P(EX(object))->(&EX(object), function_name_strval, function_name_strlen TSRMLS_CC); if (!EX(fbc)) { zend_error(E_ERROR, "Call to undefined method %s::%s()", Z_OBJ_CLASS_NAME_P(EX(object)), function_name_strval); } diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c index 7965bb0eb3..8b7d5bbff0 100644 --- a/Zend/zend_object_handlers.c +++ b/Zend/zend_object_handlers.c @@ -666,11 +666,12 @@ ZEND_API int zend_check_protected(zend_class_entry *ce, zend_class_entry *scope) } -static union _zend_function *zend_std_get_method(zval *object, char *method_name, int method_len TSRMLS_DC) +static union _zend_function *zend_std_get_method(zval **object_ptr, char *method_name, int method_len TSRMLS_DC) { zend_object *zobj; zend_function *fbc; char *lc_method_name; + zval *object = *object_ptr; lc_method_name = do_alloca(method_len+1); /* Create a zend_copy_str_tolower(dest, src, src_length); */ diff --git a/Zend/zend_object_handlers.h b/Zend/zend_object_handlers.h index 4c8d12eda3..92016789b0 100644 --- a/Zend/zend_object_handlers.h +++ b/Zend/zend_object_handlers.h @@ -79,7 +79,7 @@ typedef HashTable *(*zend_object_get_properties_t)(zval *object TSRMLS_DC); /* Andi - EX(fbc) (function being called) needs to be initialized already in the INIT fcall opcode so that the parameters can be parsed the right way. We need to add another callback for this. */ typedef int (*zend_object_call_method_t)(char *method, INTERNAL_FUNCTION_PARAMETERS); -typedef union _zend_function *(*zend_object_get_method_t)(zval *object, char *method, int method_len TSRMLS_DC); +typedef union _zend_function *(*zend_object_get_method_t)(zval **object_ptr, char *method, int method_len TSRMLS_DC); typedef union _zend_function *(*zend_object_get_constructor_t)(zval *object TSRMLS_DC); /* Object maintenance/destruction */