From b97e1dc601473c56a5c13ce5438e4f7f3514a285 Mon Sep 17 00:00:00 2001 From: Michi Henning Date: Thu, 8 Feb 2007 03:47:33 +0000 Subject: Bug 1337. --- cpp/src/Ice/Initialize.cpp | 47 ++++------------------------------------------ 1 file changed, 4 insertions(+), 43 deletions(-) (limited to 'cpp/src/Ice/Initialize.cpp') diff --git a/cpp/src/Ice/Initialize.cpp b/cpp/src/Ice/Initialize.cpp index ae9d72aaee5..c6e873697a8 100644 --- a/cpp/src/Ice/Initialize.cpp +++ b/cpp/src/Ice/Initialize.cpp @@ -8,6 +8,7 @@ // ********************************************************************** #include +#include #include #include #include @@ -166,50 +167,10 @@ Ice::initialize(int& argc, char* argv[], const InitializationData& initializatio CommunicatorPtr Ice::initialize(StringSeq& args, const InitializationData& initializationData, Int version) { - int origArgc; - char** argv = 0; - CommunicatorPtr communicator; - try - { - // - // Make a dummy argc/argv. - // (We can't use argsToStringSeq() because that requires an already initialized argv.) - // - int argc = static_cast(args.size()); - origArgc = argc; - argv = new char*[args.size() + 1]; - int i; - for(i = 0; i != argc; ++i) - { - argv[i] = new char[args[i].size() + 1]; -#if defined(_MSC_VER) && (_MSC_VER >= 1400) - strcpy_s(argv[i], args[i].size() + 1, args[i].c_str()); -#else - strcpy(argv[i], args[i].c_str()); -#endif - } - argv[argc] = 0; - - communicator = initialize(argc, argv, initializationData, version); - - args = argsToStringSeq(argc, argv); - - for(i = 0; i < origArgc; ++i) - { - delete[] argv[i]; - } - delete[] argv; - } - catch(...) - { - for(int i = 0; i < origArgc; ++i) - { - delete[] argv[i]; - } - delete[] argv; - throw; - } + IceUtil::ArgVector av(args); + communicator = initialize(av.argc, av.argv, initializationData, version); + args = argsToStringSeq(av.argc, av.argv); return communicator; } -- cgit v1.2.3