From: Marcus Boerger Date: Fri, 19 Jan 2007 22:19:08 +0000 (+0000) Subject: - Add Z_OBJDEBUG[_P[P]] helper macros X-Git-Tag: RELEASE_1_0_0RC1~199 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=06af520df79290f17021b5346091e41050ee1505;p=php - Add Z_OBJDEBUG[_P[P]] helper macros --- diff --git a/Zend/zend.c b/Zend/zend.c index 7e6f549138..029dfba69b 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -594,12 +594,7 @@ ZEND_API void zend_print_zval_r_ex(zend_write_func_t write_func, zval *expr, int if (class_name.v) { efree(class_name.v); } - if (Z_OBJ_HANDLER_P(expr, get_debug_info)) { - properties = Z_OBJ_HANDLER_P(expr, get_debug_info)(expr, &is_temp TSRMLS_CC); - } else if (Z_OBJ_HANDLER_P(expr, get_properties)) { - properties = Z_OBJPROP_P(expr); - is_temp = 0; - } else { + if ((properties = Z_OBJDEBUG_P(expr, is_temp)) == NULL) { break; } if (++properties->nApplyCount>1) { diff --git a/Zend/zend_operators.h b/Zend/zend_operators.h index 85ca05f7de..7d2404d6dc 100644 --- a/Zend/zend_operators.h +++ b/Zend/zend_operators.h @@ -413,6 +413,7 @@ END_EXTERN_C() #define Z_RESVAL(zval) (zval).value.lval #define Z_UNIVAL(zval) (zval).value.uni.val #define Z_UNILEN(zval) (zval).value.uni.len +#define Z_OBJDEBUG(zval,is_tmp) (Z_OBJ_HANDLER((zval),get_debug_info)?Z_OBJ_HANDLER((zval),get_debug_info)(&(zval),&is_tmp TSRMLS_CC):(is_tmp=0,Z_OBJ_HANDLER((zval),get_properties)?Z_OBJPROP(zval):NULL)) #define Z_LVAL_P(zval_p) Z_LVAL(*zval_p) #define Z_BVAL_P(zval_p) Z_BVAL(*zval_p) @@ -432,6 +433,7 @@ END_EXTERN_C() #define Z_OBJ_HANDLER_P(zval_p, h) Z_OBJ_HANDLER(*zval_p, h) #define Z_UNIVAL_P(zval_p) Z_UNIVAL(*zval_p) #define Z_UNILEN_P(zval_p) Z_UNILEN(*zval_p) +#define Z_OBJDEBUG_P(zval_p,is_tmp) Z_OBJDEBUG(*zval_p,is_tmp) #define Z_LVAL_PP(zval_pp) Z_LVAL(**zval_pp) #define Z_BVAL_PP(zval_pp) Z_BVAL(**zval_pp) @@ -451,6 +453,7 @@ END_EXTERN_C() #define Z_OBJ_HANDLER_PP(zval_p, h) Z_OBJ_HANDLER(**zval_p, h) #define Z_UNIVAL_PP(zval_pp) Z_UNIVAL(**zval_pp) #define Z_UNILEN_PP(zval_pp) Z_UNILEN(**zval_pp) +#define Z_OBJDEBUG_PP(zval_pp,is_tmp) Z_OBJDEBUG(**zval_pp,is_tmp) #define Z_TYPE(zval) (zval).type #define Z_TYPE_P(zval_p) Z_TYPE(*zval_p)