summaryrefslogtreecommitdiff
path: root/ruby/src/IceRuby/Communicator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ruby/src/IceRuby/Communicator.cpp')
-rw-r--r--ruby/src/IceRuby/Communicator.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/ruby/src/IceRuby/Communicator.cpp b/ruby/src/IceRuby/Communicator.cpp
index 73fd483f8be..232092dd9bd 100644
--- a/ruby/src/IceRuby/Communicator.cpp
+++ b/ruby/src/IceRuby/Communicator.cpp
@@ -173,6 +173,17 @@ IceRuby_initialize(int argc, VALUE* argv, VALUE self)
communicator = Ice::initialize(data);
}
}
+ catch(const Ice::LocalException& ex)
+ {
+ cerr << ex << endl;
+ for(i = 0; i < ac + 1; ++i)
+ {
+ free(av[i]);
+ }
+ delete[] av;
+
+ throw;
+ }
catch(...)
{
for(i = 0; i < ac + 1; ++i)