aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkdx <kikoodx@paranoici.org>2024-02-01 15:23:59 +0100
committerkdx <kikoodx@paranoici.org>2024-02-01 15:23:59 +0100
commit8ebe2d01e40a21faab9abba97138196208a78bf7 (patch)
tree84c97f68de8741eaca85d5e1c1ebca5c52403f6d
parent707dee1966323dae169bccf4893c5cc2da0c8107 (diff)
downloadcminus-8ebe2d01e40a21faab9abba97138196208a78bf7.tar.gz
wdeinit close logstream
-rw-r--r--_.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/_.c b/_.c
index 2a2c7bc..29ee79f 100644
--- a/_.c
+++ b/_.c
@@ -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