diff options
author | Jose <jose@zeroc.com> | 2009-07-08 23:12:24 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2009-07-08 23:12:24 +0200 |
commit | adc4906087225fbe685cdfc42b3e8e65eba853b3 (patch) | |
tree | 2c91dd087395d8d8c36ec9290df62aa5e91488bc /cpp/src/Ice/Initialize.cpp | |
parent | Bug 3632 - removed slice2docbook. (diff) | |
download | ice-adc4906087225fbe685cdfc42b3e8e65eba853b3.tar.bz2 ice-adc4906087225fbe685cdfc42b3e8e65eba853b3.tar.xz ice-adc4906087225fbe685cdfc42b3e8e65eba853b3.zip |
3965 - Add new version if Ice::initialize
Diffstat (limited to 'cpp/src/Ice/Initialize.cpp')
-rw-r--r-- | cpp/src/Ice/Initialize.cpp | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/cpp/src/Ice/Initialize.cpp b/cpp/src/Ice/Initialize.cpp index 3c0520480e0..69444ff17cb 100644 --- a/cpp/src/Ice/Initialize.cpp +++ b/cpp/src/Ice/Initialize.cpp @@ -9,6 +9,7 @@ #include <IceUtil/DisableWarnings.h> #include <IceUtil/ArgVector.h> +#include <IceUtil/StringUtil.h> #include <Ice/GC.h> #include <Ice/CommunicatorI.h> #include <Ice/PropertiesI.h> @@ -149,18 +150,32 @@ inline void checkIceVersion(Int version) #endif } +CommunicatorPtr +Ice::initialize(int& argc, char**& argv, const InitializationData& initializationData, Int version) +{ + int argcCopy = argc; + CommunicatorPtr result = initialize(argcCopy, const_cast<const char**>(argv), argc, argv, initializationData, version); + return result; +} CommunicatorPtr -Ice::initialize(int& argc, char* argv[], const InitializationData& initializationData, Int version) +Ice::initialize(int argc, const char* argv[], int& newArgc, char**& newArgv, const InitializationData& initializationData, Int version) { + checkIceVersion(version); InitializationData initData = initializationData; - initData.properties = createProperties(argc, argv, initData.properties, initData.stringConverter); + int argcCopy = argc; + char** argvCopy = IceUtilInternal::dupArgv(argv); + initData.properties = createProperties(argcCopy, argvCopy, initData.properties, initData.stringConverter); CommunicatorI* communicatorI = new CommunicatorI(initData); CommunicatorPtr result = communicatorI; // For exception safety. - communicatorI->finishSetup(argc, argv); + communicatorI->finishSetup(argcCopy, argvCopy); + + newArgc = argcCopy; + newArgv = argvCopy; + return result; } |