diff options
Diffstat (limited to 'ruby/src/IceRuby/Communicator.cpp')
-rw-r--r-- | ruby/src/IceRuby/Communicator.cpp | 11 |
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) |