diff --git a/epan/dfilter/dfilter.c b/epan/dfilter/dfilter.c index 2d74d39d98..877b93ddda 100644 --- a/epan/dfilter/dfilter.c +++ b/epan/dfilter/dfilter.c @@ -78,7 +78,7 @@ dfilter_new_function(dfwork_t *dfw, const char *name) if (!def) { dfilter_parse_fail(dfw, "Function '%s' does not exist", name); } - return stnode_new(STTYPE_FUNCTION, def, name); + return stnode_new(STTYPE_FUNCTION, def); } /* Gets a regex from a string, and sets the error message on failure. */ diff --git a/epan/dfilter/grammar.lemon b/epan/dfilter/grammar.lemon index bc0a7f3c2e..e6b1d72376 100644 --- a/epan/dfilter/grammar.lemon +++ b/epan/dfilter/grammar.lemon @@ -110,25 +110,25 @@ expr(X) ::= logical_test(L). { X = L; } /* Logical tests */ logical_test(T) ::= expr(E) TEST_AND expr(F). { - T = stnode_new(STTYPE_TEST, NULL, NULL); + T = stnode_new(STTYPE_TEST, NULL); sttype_test_set2(T, TEST_OP_AND, E, F); } logical_test(T) ::= expr(E) TEST_OR expr(F). { - T = stnode_new(STTYPE_TEST, NULL, NULL); + T = stnode_new(STTYPE_TEST, NULL); sttype_test_set2(T, TEST_OP_OR, E, F); } logical_test(T) ::= TEST_NOT expr(E). { - T = stnode_new(STTYPE_TEST, NULL, NULL); + T = stnode_new(STTYPE_TEST, NULL); sttype_test_set1(T, TEST_OP_NOT, E); } logical_test(T) ::= entity(E). { - T = stnode_new(STTYPE_TEST, NULL, NULL); + T = stnode_new(STTYPE_TEST, NULL); sttype_test_set1(T, TEST_OP_EXISTS, E); } @@ -137,17 +137,17 @@ logical_test(T) ::= entity(E). /* Entities, or things that can be compared/tested/checked */ entity(E) ::= STRING(S). { - E = stnode_new(STTYPE_STRING, df_lval_value(S), df_lval_value(S)); + E = stnode_new(STTYPE_STRING, df_lval_value(S)); df_lval_free(S); } entity(E) ::= CHARCONST(C). { - E = stnode_new(STTYPE_CHARCONST, df_lval_value(C), df_lval_value(C)); + E = stnode_new(STTYPE_CHARCONST, df_lval_value(C)); df_lval_free(C); } entity(E) ::= UNPARSED(U). { - E = stnode_new(STTYPE_UNPARSED, df_lval_value(U), df_lval_value(U)); + E = stnode_new(STTYPE_UNPARSED, df_lval_value(U)); dfilter_resolve_unparsed(dfw, E); df_lval_free(U); } @@ -158,7 +158,7 @@ entity(E) ::= function(F). { E = F; } /* Ranges */ range(R) ::= entity(E) LBRACKET range_node_list(L) RBRACKET. { - R = stnode_new(STTYPE_RANGE, NULL, NULL); + R = stnode_new(STTYPE_RANGE, NULL); sttype_range_set(R, E, L); /* Delete the list, but not the drange_nodes that @@ -202,7 +202,7 @@ rel_binop(O) ::= TEST_CONTAINS. { O = TEST_OP_CONTAINS; } /* Relational tests */ relation_test(T) ::= entity(E) rel_binop(O) entity(F). { - T = stnode_new(STTYPE_TEST, NULL, NULL); + T = stnode_new(STTYPE_TEST, NULL); sttype_test_set2(T, O, E, F); } @@ -220,10 +220,10 @@ relation_test(T) ::= entity(E) rel_binop(O) relation_test(R). sttype_test_get(F, NULL, &F, NULL); } while (stnode_type_id(F) == STTYPE_TEST); - L = stnode_new(STTYPE_TEST, NULL, NULL); + L = stnode_new(STTYPE_TEST, NULL); sttype_test_set2(L, O, E, stnode_dup(F)); - T = stnode_new(STTYPE_TEST, NULL, NULL); + T = stnode_new(STTYPE_TEST, NULL); sttype_test_set2(T, TEST_OP_AND, L, R); } @@ -232,15 +232,15 @@ relation_test(T) ::= entity(E) TEST_MATCHES entity(F). { stnode_t *R = dfilter_new_regex(dfw, F); - T = stnode_new(STTYPE_TEST, NULL, NULL); + T = stnode_new(STTYPE_TEST, NULL); sttype_test_set2(T, TEST_OP_MATCHES, E, R); } relation_test(T) ::= entity(E) TEST_IN LBRACE set_node_list(L) RBRACE. { stnode_t *S; - T = stnode_new(STTYPE_TEST, NULL, NULL); - S = stnode_new(STTYPE_SET, L, NULL); + T = stnode_new(STTYPE_TEST, NULL); + S = stnode_new(STTYPE_SET, L); sttype_test_set2(T, TEST_OP_IN, E, S); } diff --git a/epan/dfilter/semcheck.c b/epan/dfilter/semcheck.c index 2e6eeb3bde..2242544363 100644 --- a/epan/dfilter/semcheck.c +++ b/epan/dfilter/semcheck.c @@ -973,7 +973,7 @@ check_param_entity(dfwork_t *dfw, stnode_t *st_node) /* If there's an unparsed string, change it to an FT_STRING */ if (e_type == STTYPE_UNPARSED || e_type == STTYPE_CHARCONST) { fvalue = dfilter_fvalue_from_unparsed(dfw, FT_STRING, st_node, TRUE, NULL); - new_st = stnode_new(STTYPE_FVALUE, fvalue, st_node->token_value); + new_st = stnode_new(STTYPE_FVALUE, fvalue); stnode_free(st_node); return new_st; } diff --git a/epan/dfilter/syntax-tree.c b/epan/dfilter/syntax-tree.c index 162ddc5a9b..8fd55c5734 100644 --- a/epan/dfilter/syntax-tree.c +++ b/epan/dfilter/syntax-tree.c @@ -72,8 +72,8 @@ sttype_lookup(sttype_id_t type_id) return result; } -static void -_node_clear(stnode_t *node) +void +stnode_clear(stnode_t *node) { ws_assert_magic(node, STNODE_MAGIC); if (node->type) { @@ -95,15 +95,7 @@ _node_clear(stnode_t *node) } void -stnode_clear(stnode_t *node) -{ - _node_clear(node); - g_free(node->token_value); - node->token_value = NULL; -} - -static void -_node_init(stnode_t *node, sttype_id_t type_id, gpointer data) +stnode_init(stnode_t *node, sttype_id_t type_id, gpointer data) { sttype_t *type; @@ -133,32 +125,24 @@ _node_init(stnode_t *node, sttype_id_t type_id, gpointer data) } } -void -stnode_init(stnode_t *node, sttype_id_t type_id, gpointer data, const char *token_value) -{ - _node_init(node, type_id, data); - ws_assert(node->token_value == NULL); - node->token_value = g_strdup(token_value); -} - void stnode_replace(stnode_t *node, sttype_id_t type_id, gpointer data) { uint16_t flags = node->flags; /* Save flags. */ - _node_clear(node); - _node_init(node, type_id, data); + stnode_clear(node); + stnode_init(node, type_id, data); node->flags = flags; } stnode_t* -stnode_new(sttype_id_t type_id, gpointer data, const char *token_value) +stnode_new(sttype_id_t type_id, gpointer data) { stnode_t *node; node = g_new0(stnode_t, 1); node->magic = STNODE_MAGIC; - stnode_init(node, type_id, data, token_value); + stnode_init(node, type_id, data); return node; } @@ -172,7 +156,6 @@ stnode_dup(const stnode_t *node) new = g_new(stnode_t, 1); new->magic = STNODE_MAGIC; new->flags = node->flags; - new->token_value = g_strdup(node->token_value); new->repr_display = NULL; new->repr_debug = NULL; @@ -232,15 +215,6 @@ stnode_steal_data(stnode_t *node) return data; } -const char * -stnode_token_value(stnode_t *node) -{ - if (node->token_value) { - return node->token_value; - } - return ""; -} - gboolean stnode_inside_parens(stnode_t *node) { @@ -309,7 +283,6 @@ sprint_node(stnode_t *node) wmem_strbuf_append_printf(buf, "\t\tinside_parens = %s\n", true_or_false(stnode_inside_parens(node))); wmem_strbuf_append(buf, "\t}\n"); - wmem_strbuf_append_printf(buf, "\ttoken_value = \"%s\"\n", stnode_token_value(node)); wmem_strbuf_append(buf, "}\n"); return wmem_strbuf_finalize(buf); } diff --git a/epan/dfilter/syntax-tree.h b/epan/dfilter/syntax-tree.h index 173fab8383..fb842bd56b 100644 --- a/epan/dfilter/syntax-tree.h +++ b/epan/dfilter/syntax-tree.h @@ -58,7 +58,6 @@ typedef struct { sttype_t *type; uint16_t flags; gpointer data; - char *token_value; char *repr_display; char *repr_debug; } stnode_t; @@ -82,7 +81,7 @@ void sttype_register(sttype_t *type); stnode_t* -stnode_new(sttype_id_t type_id, gpointer data, const char *token_value); +stnode_new(sttype_id_t type_id, gpointer data); stnode_t* stnode_dup(const stnode_t *org); @@ -91,7 +90,7 @@ void stnode_clear(stnode_t *node); void -stnode_init(stnode_t *node, sttype_id_t type_id, gpointer data, const char *token_value); +stnode_init(stnode_t *node, sttype_id_t type_id, gpointer data); void stnode_replace(stnode_t *node, sttype_id_t type_id, gpointer data); @@ -111,9 +110,6 @@ stnode_data(stnode_t *node); gpointer stnode_steal_data(stnode_t *node); -const char * -stnode_token_value(stnode_t *node); - const char * stnode_tostr(stnode_t *node, gboolean pretty);