diff options
author | Peter Johnson <peter@tortall.net> | 2001-12-01 19:19:56 +0000 |
---|---|---|
committer | Peter Johnson <peter@tortall.net> | 2001-12-01 19:19:56 +0000 |
commit | 4bcb83da56ec8bf52247198f9134bce4d909e7ec (patch) | |
tree | 6a7dc4e30aac0a980dd1924bfbb9193f19e52062 /libyasm | |
parent | a9a74064b4eee409863bb6f37cf840a4374ca4b0 (diff) | |
download | yasm-4bcb83da56ec8bf52247198f9134bce4d909e7ec.tar.gz |
(Mostly) Clean up floatnum internal allocations.
svn path=/trunk/yasm/; revision=370
Diffstat (limited to 'libyasm')
-rw-r--r-- | libyasm/floatnum.c | 23 | ||||
-rw-r--r-- | libyasm/floatnum.h | 3 |
2 files changed, 26 insertions, 0 deletions
diff --git a/libyasm/floatnum.c b/libyasm/floatnum.c index 0f8e870b..d9006349 100644 --- a/libyasm/floatnum.c +++ b/libyasm/floatnum.c @@ -183,6 +183,29 @@ POT_Table_Init(void) } /*@=compdef@*/ +/*@-globstate@*/ +void +floatnum_shutdown(void) +{ + int i; + + if (!POT_TableN) + return; + + /* Un-offset POT_TableP */ + POT_TableP--; + + for (i=0; i<14; i++) { + BitVector_Destroy(POT_TableN[i].f.mantissa); + BitVector_Destroy(POT_TableP[i].f.mantissa); + } + BitVector_Destroy(POT_TableP[14].f.mantissa); + + xfree(POT_TableN); + xfree(POT_TableP); +} +/*@=globstate@*/ + static void floatnum_normalize(floatnum *flt) { diff --git a/libyasm/floatnum.h b/libyasm/floatnum.h index b5ab637c..c699e317 100644 --- a/libyasm/floatnum.h +++ b/libyasm/floatnum.h @@ -24,6 +24,9 @@ #ifndef YASM_FLOATNUM_H #define YASM_FLOATNUM_H +/* Clean up internal allocations */ +void floatnum_shutdown(void); + /*@only@*/ floatnum *floatnum_new(const char *str); /*@only@*/ floatnum *floatnum_copy(const floatnum *flt); void floatnum_delete(/*@only@*/ floatnum *flt); |