From fe8a11d26b5060073cb385346391461bcdeaea7a Mon Sep 17 00:00:00 2001 From: Mathieu Lacage Date: Mon, 5 Jul 2010 17:37:05 +0200 Subject: [PATCH] avoid crash upon process exit --- src/core/fatal-impl.cc | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/core/fatal-impl.cc b/src/core/fatal-impl.cc index de6d4e197..0d16bb692 100644 --- a/src/core/fatal-impl.cc +++ b/src/core/fatal-impl.cc @@ -32,11 +32,29 @@ namespace FatalImpl { /* File-scope */ namespace { + std::list **PeekStreamList (void) + { + static std::list *streams = 0; + return &streams; + } std::list *GetStreamList (void) + { + std::list **pstreams = PeekStreamList (); + if (*pstreams == 0) + { + *pstreams = new std::list (); + } + return *pstreams; + } + struct destructor + { + ~destructor () { - static std::list streams; - return &streams; + std::list **pstreams = PeekStreamList (); + delete *pstreams; + *pstreams = 0; } + }; } void