diff options
author | mbkma <[email protected]> | 2020-03-05 13:06:45 +0100 |
---|---|---|
committer | raveit65 <[email protected]> | 2020-03-08 21:40:41 +0100 |
commit | b0117b1d5ae73916c6f0d289be1f693bb5f46824 (patch) | |
tree | 4751c73751ed9951ae5a1c5b93f04c84593c6974 /src/parser.c | |
parent | 91962719d06ce16d8bc3523872b83fae4d151e10 (diff) | |
download | mate-calc-b0117b1d5ae73916c6f0d289be1f693bb5f46824.tar.bz2 mate-calc-b0117b1d5ae73916c6f0d289be1f693bb5f46824.tar.xz |
Port to GNU MPFR/MPC Library
For further information please visit:
https://www.mpfr.org/
http://www.multiprecision.org/mpc
Diffstat (limited to 'src/parser.c')
-rw-r--r-- | src/parser.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/parser.c b/src/parser.c index b4f90fc..633bc2f 100644 --- a/src/parser.c +++ b/src/parser.c @@ -276,8 +276,9 @@ p_parse(ParserState* state) ans = (MPNumber *) (*(state->root->evaluate))(state->root); if(ans) { + state->ret = mp_new(); mp_set_from_mp(ans, &state->ret); - free(ans); + mp_free(ans); return PARSER_ERR_NONE; } return PARSER_ERR_INVALID; @@ -330,10 +331,11 @@ p_check_variable(ParserState* state, gchar* name) { return FALSE; } - + temp = mp_new(); /* If defined, then get the variable */ if((*(state->get_variable))(state, name, &temp)) { + mp_clear(&temp); return TRUE; } @@ -354,6 +356,7 @@ p_check_variable(ParserState* state, gchar* name) } free(buffer); } + mp_clear(&temp); if(!result) { return FALSE; |