diff options
author | kdx <kikoodx@paranoici.org> | 2024-02-01 15:23:59 +0100 |
---|---|---|
committer | kdx <kikoodx@paranoici.org> | 2024-02-01 15:23:59 +0100 |
commit | 8ebe2d01e40a21faab9abba97138196208a78bf7 (patch) | |
tree | 84c97f68de8741eaca85d5e1c1ebca5c52403f6d | |
parent | 707dee1966323dae169bccf4893c5cc2da0c8107 (diff) | |
download | cminus-8ebe2d01e40a21faab9abba97138196208a78bf7.tar.gz |
wdeinit close logstream
-rw-r--r-- | _.c | 13 |
1 files changed, 9 insertions, 4 deletions
@@ -9,6 +9,7 @@ static void **_alloced = nullptr; static size_t _alloced_size = 0; static size_t _alloced_capacity = 0; FILE *_cminus_logstream = nullptr; +static bool _plogstream_owned = false; void wdeinit(void) { if (_alloced != nullptr) { @@ -19,6 +20,12 @@ void wdeinit(void) { _alloced = nullptr; _alloced_size = 0; _alloced_capacity = 0; + + if (_cminus_logstream && _plogstream_owned) { + fclose(_cminus_logstream); + _cminus_logstream = nullptr; + _plogstream_owned = false; + } } void *alloc(size_t size) { @@ -73,13 +80,11 @@ void *_realloc(void *ptr, size_t size) { } void plogstream(FILE *fp, bool take_ownership) { - static bool owned = false; assert(fp != nullptr); - - if (_cminus_logstream && owned) + if (_cminus_logstream && _plogstream_owned) fclose(_cminus_logstream); _cminus_logstream = fp; - owned = take_ownership; + _plogstream_owned = take_ownership; } // mathematical vectors |