]> granicus.if.org Git - php/commitdiff
Partially revert 3477135cd1024c897dc070c37ddae411839b6e7e
authorDmitry Stogov <dmitry@zend.com>
Thu, 15 Jan 2015 23:21:27 +0000 (02:21 +0300)
committerDmitry Stogov <dmitry@zend.com>
Thu, 15 Jan 2015 23:21:27 +0000 (02:21 +0300)
Zend/zend_object_handlers.c

index 251ac310d5f19e922d2ca40b1ecfcbcc15b0da4b..c77754fe46b8a8e47a0de0299e0d255bb4db3fa3 100644 (file)
@@ -1044,7 +1044,9 @@ static union _zend_function *zend_std_get_method(zend_object **obj_ptr, zend_str
        }
 
        if (UNEXPECTED((func = zend_hash_find(&zobj->ce->function_table, lc_method_name)) == NULL)) {
-               STR_ALLOCA_FREE(lc_method_name, use_heap);
+               if (UNEXPECTED(!key)) {
+                       STR_ALLOCA_FREE(lc_method_name, use_heap);
+               }
                if (zobj->ce->__call) {
                        return zend_get_user_call_function(zobj->ce, method_name);
                } else {
@@ -1099,7 +1101,9 @@ static union _zend_function *zend_std_get_method(zend_object **obj_ptr, zend_str
                }
        }
 
-       STR_ALLOCA_FREE(lc_method_name, use_heap);
+       if (UNEXPECTED(!key)) {
+               STR_ALLOCA_FREE(lc_method_name, use_heap);
+       }
        return fbc;
 }
 /* }}} */