summaryrefslogtreecommitdiff
path: root/Zend/zend_execute.c
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>2002-06-05 17:34:56 +0000
committerAndi Gutmans <andi@php.net>2002-06-05 17:34:56 +0000
commit2d6404d5b0e998ef21d99cd24265a6cb209e6c87 (patch)
tree8a1bce7e7eaa351ec30ee3e1613874f593af33d0 /Zend/zend_execute.c
parent6c6ac37be47146952212026974532adc6c6a504a (diff)
downloadphp-git-2d6404d5b0e998ef21d99cd24265a6cb209e6c87.tar.gz
- Allow overloaded objects to receive the method name in its original
- case.
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r--Zend/zend_execute.c26
1 files changed, 4 insertions, 22 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 4fa0d3b302..4457ea6aaa 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1892,30 +1892,15 @@ binary_assign_op_addr_obj:
{
zval *function_name;
zval tmp;
- zend_bool is_const;
char *function_name_strval;
int function_name_strlen;
zend_ptr_stack_n_push(&EG(arg_types_stack), 2, EX(fbc), EX(object));
- is_const = (EX(opline)->op2.op_type == IS_CONST);
-
- if (is_const) {
- function_name_strval = EX(opline)->op2.u.constant.value.str.val;
- function_name_strlen = EX(opline)->op2.u.constant.value.str.len;
- } else {
- function_name = get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R);
-
- tmp = *function_name;
- zval_copy_ctor(&tmp);
- convert_to_string(&tmp);
- function_name = &tmp;
- zend_str_tolower(tmp.value.str.val, tmp.value.str.len);
+ function_name = get_zval_ptr(&EX(opline)->op2, EX(Ts), &EG(free_op2), BP_VAR_R);
+ function_name_strval = function_name->value.str.val;
+ function_name_strlen = function_name->value.str.len;
- function_name_strval = tmp.value.str.val;
- function_name_strlen = tmp.value.str.len;
- }
-
EX(calling_scope) = EG(scope);
if (EX(opline)->extended_value == ZEND_FETCH_FROM_THIS) {
@@ -1953,10 +1938,7 @@ binary_assign_op_addr_obj:
EX(calling_scope) = NULL;
}
- if (!is_const) {
- zval_dtor(&tmp);
- FREE_OP(EX(Ts), &EX(opline)->op2, EG(free_op2));
- }
+ FREE_OP(EX(Ts), &EX(opline)->op2, EG(free_op2));
NEXT_OPCODE();
}