From: Martin Mares Date: Sat, 14 Feb 2009 22:25:33 +0000 (+0100) Subject: Logging: Fix log_close_all(). X-Git-Tag: holmes-import~84 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=60a36bc71f364a8e251d70fae26f38de17522c04;p=libucw.git Logging: Fix log_close_all(). Closing of streams and freeing of memory has to be separate since we introduced use counts. --- diff --git a/ucw/log-stream.c b/ucw/log-stream.c index 468d6f7d..097faef9 100644 --- a/ucw/log-stream.c +++ b/ucw/log-stream.c @@ -60,13 +60,14 @@ log_close_all(void) if (!log_initialized) return; - // FIXME! + // Close all open streams for (int i=0; i < log_streams_after; i++) - { - if (log_streams.ptr[i]->regnum >= 0) - log_close_stream(log_streams.ptr[i]); - xfree(log_streams.ptr[i]); - } + if (log_streams.ptr[i]->regnum >= 0) + log_close_stream(log_streams.ptr[i]); + + // Free all cached structures + for (int i=0; i < log_streams_after; i++) + xfree(log_streams.ptr[i]); /* Back to the default state */ lsbuf_done(&log_streams); diff --git a/ucw/log.c b/ucw/log.c index 7761401b..c6a095be 100644 --- a/ucw/log.c +++ b/ucw/log.c @@ -336,6 +336,7 @@ int main(void) msg(L_INFO | ls->regnum, "Brum <%300s>", ":-)"); log_set_format(log_default_stream(), ~0U, LSFMT_USEC); msg(L_INFO, "Brum <%300s>", ":-)"); + log_close_all(); return 0; }