helly           Wed Jun 11 16:51:14 2003 EDT

  Modified files:              
    /spl        php_spl.c php_spl.h spl_engine.c spl_foreach.c 
  Log:
  WS and removing unecessary things
  
Index: spl/php_spl.c
diff -u spl/php_spl.c:1.6 spl/php_spl.c:1.7
--- spl/php_spl.c:1.6   Wed Jun  4 16:54:13 2003
+++ spl/php_spl.c       Wed Jun 11 16:51:14 2003
@@ -164,6 +164,7 @@
        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 @@
 #ifdef SPL_ARRAY_WRITE
        ZEND_EXECUTE_HOOK_RESTORE(ZEND_ASSIGN);
 #endif /* SPL_ARRAY_WRITE */
+
        return SUCCESS;
 }
 /* }}} */
Index: spl/php_spl.h
diff -u spl/php_spl.h:1.3 spl/php_spl.h:1.4
--- spl/php_spl.h:1.3   Wed Jun  4 16:54:13 2003
+++ spl/php_spl.h       Wed Jun 11 16:51:14 2003
@@ -58,7 +58,6 @@
 #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);
Index: spl/spl_engine.c
diff -u spl/spl_engine.c:1.6 spl/spl_engine.c:1.7
--- spl/spl_engine.c:1.6        Wed Jun  4 16:54:13 2003
+++ spl/spl_engine.c    Wed Jun 11 16:51:14 2003
@@ -184,7 +184,6 @@
        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 @@
        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 @@
                                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 @@
        }
        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 @@
                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);
Index: spl/spl_foreach.c
diff -u spl/spl_foreach.c:1.11 spl/spl_foreach.c:1.12
--- spl/spl_foreach.c:1.11      Mon Jun  9 12:58:51 2003
+++ spl/spl_foreach.c   Wed Jun 11 16:51:14 2003
@@ -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 @@
                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 @@
        /* 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 @@
        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_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 @@
                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);



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to