Hi:
     about #55311.https://bugs.php.net/bug.php?id=55311

     I found it maybe for some reason, that somebody change the
if/elseif sequence to make this bug.

     but I am not sure about why he do this,  so I refer to maillist,  any idea?

    Index: Zend/zend_object_handlers.c
===================================================================
--- Zend/zend_object_handlers.c (revision 313905)
+++ Zend/zend_object_handlers.c (working copy)
@@ -988,13 +988,13 @@
        if (!fbc && zend_hash_find(&ce->function_table, lc_function_name,
function_name_strlen+1, (void **) &fbc)==FAILURE) {
                efree(lc_function_name);

-               if (ce->__call &&
+               if (ce->__callstatic) {
+                       return zend_get_user_callstatic_function(ce, 
function_name_strval,
function_name_strlen);
+               } else if (ce->__call &&
                    EG(This) &&
                    Z_OBJ_HT_P(EG(This))->get_class_entry &&
                    instanceof_function(Z_OBJCE_P(EG(This)), ce TSRMLS_CC)) {
                        return zend_get_user_call_function(ce, 
function_name_strval,
function_name_strlen);
-               } else if (ce->__callstatic) {
-                       return zend_get_user_callstatic_function(ce, 
function_name_strval,
function_name_strlen);
                } else {
                        return NULL;
                }
-- 
Laruence  Xinchen Hui
http://www.laruence.com/

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to