parse.y (paser_pfree): recycle memory if possible.

This commit is contained in:
Yukihiro "Matz" Matsumoto
2022-06-14 16:12:56 +09:00
parent 65ff04b20d
commit 7005f8661b
2 changed files with 6 additions and 6 deletions
+3 -3
View File
@@ -110,6 +110,8 @@ parser_palloc(parser_state *p, size_t size)
return m;
}
#define parser_pfree(ptr) do { if (sizeof(node) <= sizeof(*(ptr))) cons_free((node*)ptr);} while (0)
static node*
cons_gen(parser_state *p, node *car, node *cdr)
{
@@ -1369,9 +1371,7 @@ static void
end_strterm(parser_state *p)
{
parser_lex_strterm *term = p->lex_strterm->prev;
if (sizeof(node) < sizeof(parser_lex_strterm)) {
cons_free((node*)p->lex_strterm);
}
parser_pfree(p->lex_strterm);
p->lex_strterm = term;
}
+3 -3
View File
@@ -173,6 +173,8 @@ parser_palloc(parser_state *p, size_t size)
return m;
}
#define parser_pfree(ptr) do { if (sizeof(node) <= sizeof(*(ptr))) cons_free((node*)ptr);} while (0)
static node*
cons_gen(parser_state *p, node *car, node *cdr)
{
@@ -1432,9 +1434,7 @@ static void
end_strterm(parser_state *p)
{
parser_lex_strterm *term = p->lex_strterm->prev;
if (sizeof(node) < sizeof(parser_lex_strterm)) {
cons_free((node*)p->lex_strterm);
}
parser_pfree(p->lex_strterm);
p->lex_strterm = term;
}