From: Felipe Pena Date: Sun, 10 Nov 2013 15:47:28 +0000 (-0200) Subject: - Added llist dtor X-Git-Tag: php-5.6.0alpha1~110^2~532^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6069121e234a7b70c2c8f9154759e1e583735946;p=php - Added llist dtor --- diff --git a/phpdbg.c b/phpdbg.c index ea7e356465..a0419f313e 100644 --- a/phpdbg.c +++ b/phpdbg.c @@ -23,34 +23,39 @@ ZEND_DECLARE_MODULE_GLOBALS(phpdbg); void (*zend_execute_old)(zend_execute_data *execute_data TSRMLS_DC); void (*zend_execute_internal_old)(zend_execute_data *execute_data_ptr, zend_fcall_info *fci, int return_value_used TSRMLS_DC); -static inline void php_phpdbg_globals_ctor(zend_phpdbg_globals *pg) { +static inline void php_phpdbg_globals_ctor(zend_phpdbg_globals *pg) /* {{{ */ +{ pg->exec = NULL; pg->ops = NULL; pg->stepping = 0; pg->vmret = 0; -} +} /* }}} */ -static PHP_MINIT_FUNCTION(phpdbg) { +static PHP_MINIT_FUNCTION(phpdbg) /* {{{ */ +{ ZEND_INIT_MODULE_GLOBALS(phpdbg, php_phpdbg_globals_ctor, NULL); zend_execute_old = zend_execute_ex; zend_execute_ex = phpdbg_execute_ex; return SUCCESS; -} - -static inline void php_phpdbg_destroy_break(void *brake) { +} /* }}} */ -} +static void php_phpdbg_destroy_break(void *brake) /* {{{ */ +{ + zend_llist_destroy((zend_llist*)brake); +} /* }}} */ -static PHP_RINIT_FUNCTION(phpdbg) { +static PHP_RINIT_FUNCTION(phpdbg) /* {{{ */ +{ zend_hash_init(&PHPDBG_G(break_files), 8, NULL, php_phpdbg_destroy_break, 0); zend_hash_init(&PHPDBG_G(break_symbols), 8, NULL, php_phpdbg_destroy_break, 0); return SUCCESS; -} +} /* }}} */ -static PHP_RSHUTDOWN_FUNCTION(phpdbg) { +static PHP_RSHUTDOWN_FUNCTION(phpdbg) /* {{{ */ +{ zend_hash_destroy(&PHPDBG_G(break_files)); zend_hash_destroy(&PHPDBG_G(break_symbols)); @@ -63,7 +68,7 @@ static PHP_RSHUTDOWN_FUNCTION(phpdbg) { efree(PHPDBG_G(ops)); } return SUCCESS; -} +} /* }}} */ static zend_module_entry sapi_phpdbg_module_entry = { STANDARD_MODULE_HEADER, diff --git a/phpdbg_prompt.c b/phpdbg_prompt.c index d99dbd3466..12c3cc5120 100644 --- a/phpdbg_prompt.c +++ b/phpdbg_prompt.c @@ -28,6 +28,13 @@ static const phpdbg_command_t phpdbg_prompt_commands[]; ZEND_EXTERN_MODULE_GLOBALS(phpdbg); +static void phpdbg_llist_breakfile_dtor(void *data) +{ + phpdbg_breakfile_t *bp = (phpdbg_breakfile_t*) data; + + efree(bp->filename); +} + static PHPDBG_COMMAND(exec) { /* {{{ */ if (PHPDBG_G(exec)) { printf( @@ -187,7 +194,9 @@ static PHPDBG_COMMAND(break) /* {{{ */ if (zend_hash_find(&PHPDBG_G(break_files), new_break.filename, name_len, (void**)&break_files_ptr) == FAILURE) { zend_llist break_files; - zend_llist_init(&break_files, sizeof(phpdbg_breakfile_t), NULL, 0); + + zend_llist_init(&break_files, sizeof(phpdbg_breakfile_t), + phpdbg_llist_breakfile_dtor, 0); zend_hash_update(&PHPDBG_G(break_files), new_break.filename, name_len, &break_files, sizeof(zend_llist),