mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-26 10:43:47 +08:00
Replaced void*data with auto_ptr<function_data_t>, eliminating antoher halloc.
This commit is contained in:
parent
c0e783eb6e
commit
006523ac59
|
@ -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 )
|
||||
{
|
||||
|
|
4
parser.h
4
parser.h
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue
Block a user