]> granicus.if.org Git - php/commitdiff
make conditional breakpoint structure consistent with others
authorkrakjoe <joe.watkins@live.co.uk>
Wed, 27 Nov 2013 12:15:37 +0000 (12:15 +0000)
committerkrakjoe <joe.watkins@live.co.uk>
Wed, 27 Nov 2013 12:15:37 +0000 (12:15 +0000)
phpdbg.c
phpdbg_bp.c
phpdbg_bp.h

index bd477e7109c71fb3623169c4214b16e23d3d8d3e..d0fc04a767ff1811d44ba7c2d9c232fade6e4b40 100644 (file)
--- a/phpdbg.c
+++ b/phpdbg.c
@@ -115,7 +115,7 @@ static void php_phpdbg_destroy_bp_condition(void *data) /* {{{ */
                                        brake->ops TSRMLS_CC);
                        efree(brake->ops);
                }
-               zval_dtor(&brake->code);
+               efree((char*)brake->code);
        }
 } /* }}} */
 
index 8221628d7fd9f8a5111e7bd731fe73c9611dadcb..1560bc8e161633e021d5f0e84e7595a17bfc8a09 100644 (file)
@@ -108,7 +108,7 @@ PHPDBG_API void phpdbg_export_breakpoints(FILE *handle TSRMLS_DC) /* {{{ */
                                                case PHPDBG_BREAK_COND: {
                                                        fprintf(handle, 
                                                                "break on %s\n", 
-                                                               Z_STRVAL(((phpdbg_breakcond_t*)brake)->code));
+                                                               ((phpdbg_breakcond_t*)brake)->code);
                                                } break;
                                        }
                                }
@@ -307,8 +307,6 @@ PHPDBG_API void phpdbg_set_breakpoint_expression(const char *expr, size_t expr_l
                zend_uint cops = CG(compiler_options);
                zval pv;
 
-               ZVAL_STRINGL(&new_break.code, expr, expr_len, 1);
-
                new_break.hash = hash;
                new_break.id = PHPDBG_G(bp_count)++;
                new_break.type = PHPDBG_BREAK_COND;
@@ -317,8 +315,8 @@ PHPDBG_API void phpdbg_set_breakpoint_expression(const char *expr, size_t expr_l
 
                CG(compiler_options) = ZEND_COMPILE_DEFAULT_FOR_EVAL;
 
-               Z_STRLEN(pv) = expr_len + sizeof("return ;") - 1;
-               Z_STRVAL(pv) = emalloc(Z_STRLEN(pv) + 1);
+               new_break.code_len = Z_STRLEN(pv) = expr_len + sizeof("return ;") - 1;
+               new_break.code = Z_STRVAL(pv) = emalloc(Z_STRLEN(pv) + 1);
                memcpy(Z_STRVAL(pv), "return ", sizeof("return ") - 1);
                memcpy(Z_STRVAL(pv) + sizeof("return ") - 1, expr, expr_len);
                Z_STRVAL(pv)[Z_STRLEN(pv) - 1] = ';';
@@ -336,14 +334,14 @@ PHPDBG_API void phpdbg_set_breakpoint_expression(const char *expr, size_t expr_l
                                sizeof(phpdbg_breakcond_t), (void**)&brake);
 
                        phpdbg_notice("Conditional breakpoint #%d added %s/%p",
-                               brake->id, Z_STRVAL(brake->code), brake->ops);
+                               brake->id, brake->code, brake->ops);
 
                        PHPDBG_G(flags) |= PHPDBG_HAS_COND_BP;
                        PHPDBG_BREAK_MAPPING(new_break.id, &PHPDBG_G(bp)[PHPDBG_BREAK_COND]);
                } else {
                         phpdbg_error(
                                "Failed to compile code for expression %s", expr);
-                        zval_dtor(&new_break.code);
+                        efree((char*)new_break.code);
                         PHPDBG_G(bp_count)--;
                }
                CG(compiler_options) = cops;
@@ -507,7 +505,7 @@ int phpdbg_find_conditional_breakpoint(TSRMLS_D) /* {{{ */
                                breakpoint = SUCCESS;
                        }
                } zend_catch {
-                       phpdbg_error("Error detected while evaluating expression %s", Z_STRVAL(bp->code));
+                       phpdbg_error("Error detected while evaluating expression %s", bp->code);
                        CG(interactive) = orig_interactive;
 
                        EG(no_extensions)=1;
@@ -532,7 +530,7 @@ int phpdbg_find_conditional_breakpoint(TSRMLS_D) /* {{{ */
 
        if (breakpoint == SUCCESS) {
                phpdbg_notice("Conditional breakpoint #%d: (%s) %s:%u",
-                       bp->id, Z_STRVAL(bp->code),
+                       bp->id, bp->code,
                        zend_get_executed_filename(TSRMLS_C),
                        zend_get_executed_lineno(TSRMLS_C));
        }
@@ -753,7 +751,7 @@ PHPDBG_API void phpdbg_print_breakpoints(zend_ulong type TSRMLS_DC) /* {{{ */
                        for (zend_hash_internal_pointer_reset_ex(&PHPDBG_G(bp)[PHPDBG_BREAK_COND], &position);
                             zend_hash_get_current_data_ex(&PHPDBG_G(bp)[PHPDBG_BREAK_COND], (void**) &brake, &position) == SUCCESS;
                             zend_hash_move_forward_ex(&PHPDBG_G(bp)[PHPDBG_BREAK_COND], &position)) {
-                               phpdbg_writeln("#%d\t\t%s", brake->id, Z_STRVAL(brake->code));
+                               phpdbg_writeln("#%d\t\t%s", brake->id, brake->code);
                        }
                } break;
 
index 84162ecf6620b1da132ffc565a91626d3bb7ce3e..607521f76bfa8e9d10070da5e4b1c7d5807a529c 100644 (file)
@@ -87,8 +87,9 @@ typedef struct _phpdbg_breakop_t {
 typedef struct _phpdbg_breakcond_t {
        int             id;
        zend_uchar      type;
+       const char     *code;
+       size_t                  code_len;
        zend_ulong      hash;
-       zval            code;
        zend_op_array  *ops;
 } phpdbg_breakcond_t;