cvs: ZendEngine2 / zend_execute.c /tests bug26802.phpt

From: Date: Mon, 05 Jan 2004 22:45:12 +0000
Subject: cvs: ZendEngine2 / zend_execute.c /tests bug26802.phpt
Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-2179@lists.php.net to get a copy of this message
helly Mon Jan 5 17:45:12 2004 EDT Modified files: /ZendEngine2 zend_execute.c /ZendEngine2/tests bug26802.phpt Log: Fixed bug #26802 Index: ZendEngine2/zend_execute.c diff -u ZendEngine2/zend_execute.c:1.578 ZendEngine2/zend_execute.c:1.579 --- ZendEngine2/zend_execute.c:1.578 Mon Jan 5 06:45:46 2004 +++ ZendEngine2/zend_execute.c Mon Jan 5 17:45:11 2004 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute.c,v 1.578 2004/01/05 11:45:46 stas Exp $ */ +/* $Id: zend_execute.c,v 1.579 2004/01/05 22:45:11 helly Exp $ */ #define ZEND_INTENSIVE_DEBUGGING 0 @@ -2470,8 +2470,25 @@ lcname = zend_str_tolower_dup(function_name_strval, function_name_strlen); if (zend_hash_find(EG(function_table), lcname, function_name_strlen+1, (void **) &function)==FAILURE) { - efree(lcname); - zend_error(E_ERROR, "Call to undefined function %s()", function_name_strval); + char *method; + zend_class_entry **pce; + + if ((method = strstr(lcname, "::")) != NULL) { + *method = '\0'; + method +=2; + if (zend_lookup_class(lcname, strlen(lcname), &pce TSRMLS_CC) == SUCCESS) { + if (zend_hash_find(&(*pce)->function_table, method, strlen(method)+1, (void **) &function) == FAILURE) { + efree(lcname); + zend_error(E_ERROR, "Call to undefined method %s()", function_name_strval); + } + } else { + efree(lcname); + zend_error(E_ERROR, "Call to method of undefined class %s()", function_name_strval); + } + } else { + efree(lcname); + zend_error(E_ERROR, "Call to undefined function %s()", function_name_strval); + } } efree(lcname); Index: ZendEngine2/tests/bug26802.phpt diff -u ZendEngine2/tests/bug26802.phpt:1.2 ZendEngine2/tests/bug26802.phpt:1.3 --- ZendEngine2/tests/bug26802.phpt:1.2 Mon Jan 5 17:40:24 2004 +++ ZendEngine2/tests/bug26802.phpt Mon Jan 5 17:45:11 2004 @@ -1,5 +1,5 @@ --TEST-- -#26802 (Can't call static method using a variable) +Bug #26802 (Can't call static method using a variable) --FILE-- <?php

« previous php.zend-engine.cvs (#2179) next »