diff options
author | Michi Henning <michi@zeroc.com> | 2003-12-19 01:29:43 +0000 |
---|---|---|
committer | Michi Henning <michi@zeroc.com> | 2003-12-19 01:29:43 +0000 |
commit | e8f755c060a5777076559b180770716bf75a5bcc (patch) | |
tree | e87c40974bd48f0f6db885a6e6e2aeb2bee5b352 /cpp | |
parent | minor fix (diff) | |
download | ice-e8f755c060a5777076559b180770716bf75a5bcc.tar.bz2 ice-e8f755c060a5777076559b180770716bf75a5bcc.tar.xz ice-e8f755c060a5777076559b180770716bf75a5bcc.zip |
Fixed crash caused by two calls to destroy() if Ice::Application was used
and the process was interrupted.
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/CHANGES | 4 | ||||
-rw-r--r-- | cpp/src/Ice/CommunicatorI.cpp | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/cpp/CHANGES b/cpp/CHANGES index 8f664a807a6..74955bac17f 100644 --- a/cpp/CHANGES +++ b/cpp/CHANGES @@ -1,6 +1,10 @@ Changes since version 1.2.0 --------------------------- +- Fixed a bug that could cause a crash if an application used + Ice::Application and was interrupted by a signal, resulting + in two calls to Communicator::destroy(). + - Replaced interface Glacier::PasswordVerifier with Glacier::PermissionsVerifier, property Glacier.Starter.PasswordVerifier with diff --git a/cpp/src/Ice/CommunicatorI.cpp b/cpp/src/Ice/CommunicatorI.cpp index f4fc8d20d3c..3ea9e32dd1c 100644 --- a/cpp/src/Ice/CommunicatorI.cpp +++ b/cpp/src/Ice/CommunicatorI.cpp @@ -100,7 +100,10 @@ Ice::CommunicatorI::destroy() { theCollector->stop(); } - theCollector->collectGarbage(); // Collect whenever a communicator is destroyed. + if(theCollector) + { + theCollector->collectGarbage(); // Collect whenever a communicator is destroyed. + } if(last) { if(gcTraceLevel) |