fix memory leak in PPparse()
This commit is contained in:
parent
76336fa21b
commit
15bda2b9e0
|
|
@ -1,6 +1,6 @@
|
|||
%{
|
||||
/*
|
||||
* (compile (concat "bison " buffer-file-name))
|
||||
* (compile (concat "bison " (file-relative-name buffer-file-name)))
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
|
@ -132,7 +132,7 @@ one_exp:
|
|||
|
||||
exp:
|
||||
TOK_NUM { $$ = mknnode($1); }
|
||||
| TOK_STR { $$ = mksnode($1); }
|
||||
| TOK_STR { $$ = mksnode($1); txfree((void*)$1); }
|
||||
|
||||
| exp ',' exp { $$ = mkbnode(PT_OP_COMMA, $1, $3); }
|
||||
| exp '+' exp { $$ = mkbnode(PT_OP_PLUS, $1, $3); }
|
||||
|
|
@ -147,7 +147,11 @@ exp:
|
|||
| '-' exp %prec NEG { $$ = mkunode(PT_OP_UMINUS, $2); }
|
||||
| '~' exp { $$ = mkunode(PT_OP_NOT, $2); }
|
||||
|
||||
| TOK_STR '(' exp ')' { $$ = mkfnode($1, $3); if(!$$) YYABORT; }
|
||||
| TOK_STR '(' exp ')' { $$ = mkfnode($1, $3);
|
||||
txfree((void*)$1);
|
||||
if(!$$)
|
||||
YYABORT;
|
||||
}
|
||||
|
||||
| exp '=' exp { $$ = mkbnode(PT_OP_EQ, $1, $3); }
|
||||
| exp TOK_NE exp { $$ = mkbnode(PT_OP_NE, $1, $3); }
|
||||
|
|
|
|||
|
|
@ -678,7 +678,7 @@ PPlex(YYSTYPE *lvalp, struct PPltype *llocp, char **line)
|
|||
else if (!atsign && ( *sbuf == '[' || *sbuf == ']' ))
|
||||
break;
|
||||
|
||||
lvalp->str = copy_substring(start, sbuf); /* XXXX !!!! */
|
||||
lvalp->str = copy_substring(start, sbuf);
|
||||
lexer_return(TOK_STR, 0);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue