Replaced void*data with auto_ptr<function_data_t>, eliminating antoher halloc.

This commit is contained in:
ridiculousfish 2012-02-07 22:10:35 -08:00
parent c0e783eb6e
commit 006523ac59
2 changed files with 6 additions and 4 deletions

View File

@ -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 )
{

View File

@ -11,8 +11,10 @@
#include "util.h"
#include "parser.h"
#include "event.h"
#include "function.h"
#include <vector>
#include <deque>
#include <memory>
#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_t> function_data;
#if 0
union