Skip to content

Commit 465555e

Browse files
committed
Fixed memory leaks for non-solaris compilers.
1 parent 0913a51 commit 465555e

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

lib/check.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,15 @@ void Check::reportError(const ErrorLogger::ErrorMessage &errmsg)
4242
{
4343
std::cout << errmsg.toXML(true, 1) << std::endl;
4444
}
45+
4546
std::list<Check *> &Check::instances() {
47+
#ifdef __SVR4
48+
// Under Solaris, destructors are called in wrong order which causes a segmentation fault.
49+
// This fix ensures pointer remains valid and reachable until program terminates.
4650
static std::list<Check *> *_instances= new std::list<Check *>;
4751
return *_instances;
52+
#else
53+
static std::list<Check *> _instances;
54+
return _instances;
55+
#endif
4856
}

0 commit comments

Comments
 (0)