All macro lookups should be of type macro_t, not string_list_t.

This is what I get for using a non-type-safe hash-table implementation.
This commit is contained in:
Carl Worth 2010-05-26 15:53:05 -07:00
parent 8e82fcb070
commit 0324cad796

View file

@ -199,7 +199,7 @@ control_line:
_define_function_macro (parser, $2, $4, $6); _define_function_macro (parser, $2, $4, $6);
} }
| HASH_UNDEF IDENTIFIER NEWLINE { | HASH_UNDEF IDENTIFIER NEWLINE {
string_list_t *macro = hash_table_find (parser->defines, $2); macro_t *macro = hash_table_find (parser->defines, $2);
if (macro) { if (macro) {
/* XXX: Need hash table to support a real way /* XXX: Need hash table to support a real way
* to remove an element rather than prefixing * to remove an element rather than prefixing
@ -222,12 +222,12 @@ control_line:
glcpp_parser_lex_from (parser, expanded); glcpp_parser_lex_from (parser, expanded);
} }
| HASH_IFDEF IDENTIFIER NEWLINE { | HASH_IFDEF IDENTIFIER NEWLINE {
string_list_t *macro = hash_table_find (parser->defines, $2); macro_t *macro = hash_table_find (parser->defines, $2);
talloc_free ($2); talloc_free ($2);
_glcpp_parser_skip_stack_push_if (parser, macro != NULL); _glcpp_parser_skip_stack_push_if (parser, macro != NULL);
} }
| HASH_IFNDEF IDENTIFIER NEWLINE { | HASH_IFNDEF IDENTIFIER NEWLINE {
string_list_t *macro = hash_table_find (parser->defines, $2); macro_t *macro = hash_table_find (parser->defines, $2);
talloc_free ($2); talloc_free ($2);
_glcpp_parser_skip_stack_push_if (parser, macro == NULL); _glcpp_parser_skip_stack_push_if (parser, macro == NULL);
} }
@ -889,7 +889,7 @@ _glcpp_parser_evaluate_defined (glcpp_parser_t *parser,
token_list_t *list) token_list_t *list)
{ {
token_node_t *node, *next; token_node_t *node, *next;
string_list_t *macro; macro_t *macro;
if (list == NULL) if (list == NULL)
return; return;