summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2003-06-11 20:51:14 +0000
committerMarcus Boerger <helly@php.net>2003-06-11 20:51:14 +0000
commit76f68f2a51d8217c6110017e5f0df8027421e67b (patch)
tree34f23ac10ada233c75fb196f5397bd61ec27fd56
parentb2c4882d54d8a716c0876aabae6afd703d6a903d (diff)
downloadphp-git-76f68f2a51d8217c6110017e5f0df8027421e67b.tar.gz
WS and removing unecessary things
-rwxr-xr-xext/spl/php_spl.c2
-rwxr-xr-xext/spl/php_spl.h1
-rwxr-xr-xext/spl/spl_engine.c22
-rwxr-xr-xext/spl/spl_foreach.c17
4 files changed, 19 insertions, 23 deletions
diff --git a/ext/spl/php_spl.c b/ext/spl/php_spl.c
index 00b1a37f0c..2d75155695 100755
--- a/ext/spl/php_spl.c
+++ b/ext/spl/php_spl.c
@@ -164,6 +164,7 @@ PHP_MINIT_FUNCTION(spl)
REGISTER_SPL_STD_CLASS(spl, array_writer_default, spl_array_writer_default_create);
REGISTER_SPL_FUNCTIONS(spl, array_writer_default, spl_array_writer_funcs);
#endif
+
return SUCCESS;
}
/* }}} */
@@ -205,6 +206,7 @@ PHP_MSHUTDOWN_FUNCTION(spl)
#ifdef SPL_ARRAY_WRITE
ZEND_EXECUTE_HOOK_RESTORE(ZEND_ASSIGN);
#endif /* SPL_ARRAY_WRITE */
+
return SUCCESS;
}
/* }}} */
diff --git a/ext/spl/php_spl.h b/ext/spl/php_spl.h
index e54ef2dbcb..9f5f715297 100755
--- a/ext/spl/php_spl.h
+++ b/ext/spl/php_spl.h
@@ -58,7 +58,6 @@ PHP_MINFO_FUNCTION(spl);
#define ZEND_EXECUTE_HOOK_FUNCTION(name) \
int spl_handler_ ## name(ZEND_OPCODE_HANDLER_ARGS)
-
ZEND_BEGIN_MODULE_GLOBALS(spl)
#ifdef SPL_FOREACH
ZEND_EXECUTE_HOOK_PTR(ZEND_FE_RESET);
diff --git a/ext/spl/spl_engine.c b/ext/spl/spl_engine.c
index 30cee2fd57..1e7b3be448 100755
--- a/ext/spl/spl_engine.c
+++ b/ext/spl/spl_engine.c
@@ -184,7 +184,6 @@ int spl_call_method(zval **object_pp, zend_class_entry *obj_ce, zend_function **
int (*orig_unary_op)(zval *result, zval *op1);
int (*orig_binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC);
zend_class_entry *current_scope;
- zend_class_entry *calling_scope = NULL;
zval *current_this;
zend_execute_data execute_data;
va_list args;
@@ -200,7 +199,6 @@ int spl_call_method(zval **object_pp, zend_class_entry *obj_ce, zend_function **
EX(opline) = NULL;
EX(object) = *object_pp;
- calling_scope = obj_ce;
original_function_state_ptr = EG(function_state_ptr);
if (fn_proxy && *fn_proxy) {
@@ -231,13 +229,15 @@ int spl_call_method(zval **object_pp, zend_class_entry *obj_ce, zend_function **
ALLOC_ZVAL(new_zval);
*new_zval = *arg;
zval_copy_ctor(new_zval);
- new_zval->refcount = 1;
+ new_zval->refcount = 2;
+ new_zval->is_ref = 1;
arg->refcount--;
- arg = new_zval;
+ param = new_zval;
+ } else {
+ arg->refcount++;
+ arg->is_ref = 1;
+ param = arg;
}
- arg->refcount++;
- arg->is_ref = 1;
- param = arg;
} else if (arg != &EG(uninitialized_zval)) {
arg->refcount++;
param = arg;
@@ -250,15 +250,15 @@ int spl_call_method(zval **object_pp, zend_class_entry *obj_ce, zend_function **
}
va_end(args);
- zend_ptr_stack_n_push(&EG(argument_stack), 2, (void *) (long) param_count, NULL);
+ zend_ptr_stack_push(&EG(argument_stack), (void *) (long) param_count);
+ zend_ptr_stack_push(&EG(argument_stack), NULL);
EG(function_state_ptr) = &EX(function_state);
current_scope = EG(scope);
- EG(scope) = calling_scope;
+ EG(scope) = obj_ce;
current_this = EG(This);
-
EG(This) = *object_pp;
if (!PZVAL_IS_REF(EG(This))) {
@@ -309,7 +309,7 @@ int spl_call_method(zval **object_pp, zend_class_entry *obj_ce, zend_function **
EG(binary_op) = orig_binary_op;
} else {
ALLOC_INIT_ZVAL(*retval);
- ((zend_internal_function *) EX(function_state).function)->handler(param_count, *retval, (object_pp?*object_pp:NULL), 1 TSRMLS_CC);
+ ((zend_internal_function *) EX(function_state).function)->handler(param_count, *retval, *object_pp, 1 TSRMLS_CC);
INIT_PZVAL(*retval);
}
zend_ptr_stack_clear_multiple(TSRMLS_C);
diff --git a/ext/spl/spl_foreach.c b/ext/spl/spl_foreach.c
index 7cc93f66e4..5d8c5f8f59 100755
--- a/ext/spl/spl_foreach.c
+++ b/ext/spl/spl_foreach.c
@@ -33,9 +33,6 @@
#define OPTIMIZED_ARRAY_CONSTRUCT
-#define ezalloc(size) \
- memset(emalloc(size), 0, size)
-
typedef struct {
zend_function *next;
zend_function *rewind;
@@ -81,8 +78,8 @@ ZEND_EXECUTE_HOOK_FUNCTION(ZEND_FE_RESET)
PZVAL_LOCK(retval);
} else if (is_a & SPL_IS_A_FORWARD) {
spl_unlock_zval_ptr_ptr(&EX(opline)->op1, EX(Ts) TSRMLS_CC);
- (*obj)->refcount += 2; /* lock two times */
retval = *obj;
+ retval->refcount += 2; /* lock two times */
} else {
ZEND_EXECUTE_HOOK_ORIGINAL(ZEND_FE_RESET);
}
@@ -98,9 +95,10 @@ ZEND_EXECUTE_HOOK_FUNCTION(ZEND_FE_RESET)
/* And pack it into a zval. Since it is nowhere accessible using a
* zval of type STRING is the fastest approach of storing the proxy.
*/
- ALLOC_INIT_ZVAL(retval);
+ ALLOC_ZVAL(retval);
ZVAL_STRINGL(retval, (char*)proxy, sizeof(spl_foreach_proxy)-1, 0);
- retval->refcount += 2; /* lock two times */
+ retval->is_ref = 0;
+ retval->refcount = 2; /* lock two times */
/* return the created proxy container */
EX_T(EX(opline)->result.u.var).var.ptr = retval;
EX_T(EX(opline)->result.u.var).var.ptr_ptr = &EX_T(EX(opline)->result.u.var).var.ptr;
@@ -140,8 +138,6 @@ ZEND_EXECUTE_HOOK_FUNCTION(ZEND_FE_FETCH)
spl_foreach_proxy *proxy;
if (Z_TYPE_PP(obj) == IS_STRING) {
- spl_unlock_zval_ptr_ptr(op1, EX(Ts) TSRMLS_CC);
- PZVAL_LOCK(*obj);
proxy = (spl_foreach_proxy*)Z_STRVAL_PP(obj);
obj = &proxy->obj; /* will be optimized out */
@@ -231,7 +227,6 @@ ZEND_EXECUTE_HOOK_FUNCTION(ZEND_FE_FETCH)
/* {{{ ZEND_EXECUTE_HOOK_FUNCTION(ZEND_SWITCH_FREE) */
ZEND_EXECUTE_HOOK_FUNCTION(ZEND_SWITCH_FREE)
{
- znode *op1 = &EX(opline)->op1;
znode *op2 = &EX(opline)->op2;
zval *tmp, **obj = spl_get_zval_ptr_ptr(op2, EX(Ts) TSRMLS_CC);
spl_foreach_proxy *proxy;
@@ -241,10 +236,10 @@ ZEND_EXECUTE_HOOK_FUNCTION(ZEND_SWITCH_FREE)
tmp = *obj;
*obj = proxy->obj; /* restore */
- zval_dtor(tmp);
+ efree(tmp->value.str.val);
FREE_ZVAL(tmp);
- spl_unlock_zval_ptr_ptr(op1, EX(Ts) TSRMLS_CC);
+ spl_unlock_zval_ptr_ptr(&EX(opline)->op1, EX(Ts) TSRMLS_CC);
PZVAL_LOCK(*obj);
SET_UNUSED(*op2);