]> granicus.if.org Git - php/commitdiff
- Add Z_OBJDEBUG[_P[P]] helper macros
authorMarcus Boerger <helly@php.net>
Fri, 19 Jan 2007 22:19:08 +0000 (22:19 +0000)
committerMarcus Boerger <helly@php.net>
Fri, 19 Jan 2007 22:19:08 +0000 (22:19 +0000)
Zend/zend.c
Zend/zend_operators.h

index 7e6f5491388a1c4346e090f1fb1932e1b44b81f7..029dfba69bfaf74952358b7027caa5f1fc3da07a 100644 (file)
@@ -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) {
index 85ca05f7ded50633841a985122c28be6a0df6c59..7d2404d6dc3891e3fd9d188f7833135691f9057e 100644 (file)
@@ -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)