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