summaryrefslogtreecommitdiff
path: root/ext/spl/spl_engine.c
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2003-08-03 22:29:20 +0000
committerMarcus Boerger <helly@php.net>2003-08-03 22:29:20 +0000
commit3b4f9d7b58fc2291795488c4dbedaac4d9532b68 (patch)
tree36294d4d18f62af7d009da61ad2b46066a86669b /ext/spl/spl_engine.c
parent1f8fd69e781ad7d1b57bca825a7709051a81594f (diff)
downloadphp-git-3b4f9d7b58fc2291795488c4dbedaac4d9532b68.tar.gz
Latest zend updates
Diffstat (limited to 'ext/spl/spl_engine.c')
-rwxr-xr-xext/spl/spl_engine.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/ext/spl/spl_engine.c b/ext/spl/spl_engine.c
index 35d233c7d1..17394f854d 100755
--- a/ext/spl/spl_engine.c
+++ b/ext/spl/spl_engine.c
@@ -176,10 +176,9 @@ spl_is_a spl_implements(zend_class_entry *ce)
/* {{{ spl_call_method */
int spl_call_method(zval **object_pp, zend_class_entry *obj_ce, zend_function **fn_proxy, char *function_name, int fname_len, zval **retval, HashTable *symbol_table TSRMLS_DC, int param_count, ...)
{
- int i, l;
+ int i;
zval *arg;
zval *param;
- unsigned char *arg_types;
zval **original_return_value;
HashTable *calling_symbol_table;
zend_function_state *original_function_state_ptr;
@@ -219,15 +218,11 @@ int spl_call_method(zval **object_pp, zend_class_entry *obj_ce, zend_function **
va_start(args, param_count);
if (param_count) {
- if ((arg_types = EX(function_state).function->common.arg_types) != NULL) {
- l = arg_types[0];
- } else {
- l = 0;
- }
for (i=1; i<=param_count; i++) {
arg = va_arg(args, zval*);
- if (i<=l && arg_types[i]==BYREF_FORCE && !PZVAL_IS_REF(arg)) {
+ if (ARG_SHOULD_BE_SENT_BY_REF(EX(function_state).function, i)
+ && !PZVAL_IS_REF(arg)) {
if (arg->refcount > 1) {
zval *new_zval;