diff --git a/src/frontend/parser.c b/src/frontend/parser.c
index e8c0cdef314c7b186110f578ec3ab84f6f9cf908..0e0534e4af3c9c0be6bb93c5ed1dfda319cf75b1 100644 (file)
--- a/src/frontend/parser.c
+++ b/src/frontend/parser.c
} /* sdb_fe_parse */
sdb_store_matcher_t *
-sdb_fe_parse_matcher(const char *expr, int len)
+sdb_fe_parse_matcher(const char *cond, int len)
{
sdb_fe_yyscan_t scanner;
sdb_fe_yyextra_t yyextra;
int yyres;
- if (scanner_init(expr, len, &scanner, &yyextra))
+ if (scanner_init(cond, len, &scanner, &yyextra))
return NULL;
- yyextra.mode = SDB_PARSE_EXPR;
+ yyextra.mode = SDB_PARSE_COND;
yyres = sdb_fe_yyparse(scanner);
sdb_fe_scanner_destroy(scanner);
else
m = NULL;
+ CONN_MATCHER(node)->matcher = NULL;
sdb_llist_destroy(yyextra.parsetree);
+ sdb_object_deref(SDB_OBJ(node));
return m;
} /* sdb_fe_parse_matcher */