From 006523ac59e42bc4ed2339ef31d2f6b41bdb190e Mon Sep 17 00:00:00 2001 From: ridiculousfish Date: Tue, 7 Feb 2012 22:10:35 -0800 Subject: [PATCH] Replaced void*data with auto_ptr, eliminating antoher halloc. --- builtin.cpp | 6 +++--- parser.h | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/builtin.cpp b/builtin.cpp index b9b05a794..c1168ae56 100644 --- a/builtin.cpp +++ b/builtin.cpp @@ -1792,7 +1792,7 @@ static int builtin_function( parser_t &parser, wchar_t **argv ) } else { - function_data_t * d = (function_data_t *)halloc( parser.current_block, sizeof( function_data_t )); + function_data_t *d = new function_data_t(); d->name=halloc_wcsdup( parser.current_block, name); d->description=desc?halloc_wcsdup( parser.current_block, desc):0; @@ -1806,7 +1806,7 @@ static int builtin_function( parser_t &parser, wchar_t **argv ) e->function_name = d->name; } - parser.current_block->data = d; + parser.current_block->function_data.reset(d); } @@ -3270,7 +3270,7 @@ static int builtin_end( parser_t &parser, wchar_t **argv ) case FUNCTION_DEF: { - function_data_t *d = (function_data_t *)parser.current_block->data; + function_data_t *d = parser.current_block->function_data.get(); if( d ) { diff --git a/parser.h b/parser.h index 5b6b2f974..271d71952 100644 --- a/parser.h +++ b/parser.h @@ -11,8 +11,10 @@ #include "util.h" #include "parser.h" #include "event.h" +#include "function.h" #include #include +#include #define PARSER_TEST_ERROR 1 #define PARSER_TEST_INCOMPLETE 2 @@ -81,7 +83,7 @@ typedef struct block /** Block type-specific data */ - void *data; + std::auto_ptr function_data; #if 0 union