Commit:    ff1e1d7a8e32cdf231b2f8085afd99de11b2db7b
Author:    Dmitry Stogov <dmi...@zend.com>         Thu, 13 Dec 2012 14:46:44 
+0400
Parents:   4b1b11563396012797f7729cd6fe8172bf3ca08d
Branches:  PHP-5.5 master

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=ff1e1d7a8e32cdf231b2f8085afd99de11b2db7b

Log:
Removed redundand checks from release build

Changed paths:
  M  Zend/zend.h
  M  Zend/zend_execute.c
  M  Zend/zend_execute.h
  M  Zend/zend_execute_API.c


Diff:
diff --git a/Zend/zend.h b/Zend/zend.h
index d2a4ef6..eceae52 100644
--- a/Zend/zend.h
+++ b/Zend/zend.h
@@ -225,6 +225,7 @@ char *alloca ();
 #define ZEND_FILE_LINE_EMPTY_CC                        , ZEND_FILE_LINE_EMPTY_C
 #define ZEND_FILE_LINE_ORIG_RELAY_C            __zend_orig_filename, 
__zend_orig_lineno
 #define ZEND_FILE_LINE_ORIG_RELAY_CC   , ZEND_FILE_LINE_ORIG_RELAY_C
+#define ZEND_ASSERT(c)                                 assert(c)
 #else
 #define ZEND_FILE_LINE_D
 #define ZEND_FILE_LINE_DC
@@ -238,6 +239,7 @@ char *alloca ();
 #define ZEND_FILE_LINE_EMPTY_CC
 #define ZEND_FILE_LINE_ORIG_RELAY_C
 #define ZEND_FILE_LINE_ORIG_RELAY_CC
+#define ZEND_ASSERT(c)
 #endif /* ZEND_DEBUG */
 
 #ifdef ZTS
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index e6034ba..c0b1d02 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -86,11 +86,10 @@ static zend_always_inline void zend_pzval_unlock_func(zval 
*z, zend_free_op *sho
 static zend_always_inline void zend_pzval_unlock_free_func(zval *z TSRMLS_DC)
 {
        if (!Z_DELREF_P(z)) {
-               if (z != &EG(uninitialized_zval)) {
-                       GC_REMOVE_ZVAL_FROM_BUFFER(z);
-                       zval_dtor(z);
-                       efree(z);
-               }
+               ZEND_ASSERT(z != &EG(uninitialized_zval));
+               GC_REMOVE_ZVAL_FROM_BUFFER(z);
+               zval_dtor(z);
+               efree(z);
        }
 }
 
diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h
index 963decd..ab560b3 100644
--- a/Zend/zend_execute.h
+++ b/Zend/zend_execute.h
@@ -61,15 +61,6 @@ ZEND_API void zend_execute(zend_op_array *op_array 
TSRMLS_DC);
 ZEND_API void execute_ex(zend_execute_data *execute_data TSRMLS_DC);
 ZEND_API void execute_internal(zend_execute_data *execute_data_ptr, struct 
_zend_fcall_info *fci, int return_value_used TSRMLS_DC);
 ZEND_API int zend_is_true(zval *op);
-#define safe_free_zval_ptr(p) safe_free_zval_ptr_rel(p ZEND_FILE_LINE_CC 
ZEND_FILE_LINE_EMPTY_CC)
-static zend_always_inline void safe_free_zval_ptr_rel(zval *p 
ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
-{
-       TSRMLS_FETCH();
-
-       if (p!=EG(uninitialized_zval_ptr)) {
-               FREE_ZVAL_REL(p);
-       }
-}
 ZEND_API int zend_lookup_class(const char *name, int name_length, 
zend_class_entry ***ce TSRMLS_DC);
 ZEND_API int zend_lookup_class_ex(const char *name, int name_length, const 
zend_literal *key, int use_autoload, zend_class_entry ***ce TSRMLS_DC);
 ZEND_API int zend_eval_string(char *str, zval *retval_ptr, char *string_name 
TSRMLS_DC);
@@ -85,11 +76,10 @@ static zend_always_inline void i_zval_ptr_dtor(zval 
*zval_ptr ZEND_FILE_LINE_DC)
        if (!Z_DELREF_P(zval_ptr)) {
                TSRMLS_FETCH();
 
-               if (zval_ptr != &EG(uninitialized_zval)) {
-                       GC_REMOVE_ZVAL_FROM_BUFFER(zval_ptr);
-                       zval_dtor(zval_ptr);
-                       efree_rel(zval_ptr);
-               }
+               ZEND_ASSERT(zval_ptr != &EG(uninitialized_zval));
+               GC_REMOVE_ZVAL_FROM_BUFFER(zval_ptr);
+               zval_dtor(zval_ptr);
+               efree_rel(zval_ptr);
        } else {
                TSRMLS_FETCH();
 
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index 4a635b2..042b83c 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -425,27 +425,7 @@ ZEND_API zend_bool zend_is_executing(TSRMLS_D) /* {{{ */
 
 ZEND_API void _zval_ptr_dtor(zval **zval_ptr ZEND_FILE_LINE_DC) /* {{{ */
 {
-#if DEBUG_ZEND>=2
-       printf("Reducing refcount for %x (%x): %d->%d\n", *zval_ptr, zval_ptr, 
Z_REFCOUNT_PP(zval_ptr), Z_REFCOUNT_PP(zval_ptr) - 1);
-#endif
-       Z_DELREF_PP(zval_ptr);
-       if (Z_REFCOUNT_PP(zval_ptr) == 0) {
-               TSRMLS_FETCH();
-
-               if (*zval_ptr != &EG(uninitialized_zval)) {
-                       GC_REMOVE_ZVAL_FROM_BUFFER(*zval_ptr);
-                       zval_dtor(*zval_ptr);
-                       efree_rel(*zval_ptr);
-               }
-       } else {
-               TSRMLS_FETCH();
-
-               if (Z_REFCOUNT_PP(zval_ptr) == 1) {
-                       Z_UNSET_ISREF_PP(zval_ptr);
-               }
-
-               GC_ZVAL_CHECK_POSSIBLE_ROOT(*zval_ptr);
-       }
+       i_zval_ptr_dtor(*zval_ptr ZEND_FILE_LINE_RELAY_CC);
 }
 /* }}} */


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

Reply via email to