com php-src: Removed redundand checks from release build: Zend/zend.h Zend/zend_execute.c Zend/zend_execute.h Zend/zend _execute_API.c
| From: | Dmitry Stogov | Date: | Thu, 13 Dec 2012 10:46:44 +0000 |
| Subject: | com php-src: Removed redundand checks from release build: Zend/zend.h Zend/zend_execute.c Zend/zend_execute.h Zend/zend _execute_API.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-70708@lists.php.net to get a copy of this message | ||
Commit: ff1e1d7a8e32cdf231b2f8085afd99de11b2db7b
Author: Dmitry Stogov <dmitry@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);
}
/* }}} */