diff options
author | Michi Henning <michi@zeroc.com> | 2007-02-12 08:44:26 +0000 |
---|---|---|
committer | Michi Henning <michi@zeroc.com> | 2007-02-12 08:44:26 +0000 |
commit | 89863202bf013bacba5360c0d01f78e866e15e38 (patch) | |
tree | 15310184231af27e212efa4449765d1ee12941af /cpp/src | |
parent | Bug 1715. (diff) | |
download | ice-89863202bf013bacba5360c0d01f78e866e15e38.tar.bz2 ice-89863202bf013bacba5360c0d01f78e866e15e38.tar.xz ice-89863202bf013bacba5360c0d01f78e866e15e38.zip |
Changed code to use IceUtil::ArgVector.
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/IcePatch2/Server.cpp | 42 |
1 files changed, 8 insertions, 34 deletions
diff --git a/cpp/src/IcePatch2/Server.cpp b/cpp/src/IcePatch2/Server.cpp index 101820871d5..99f8ecf59ed 100644 --- a/cpp/src/IcePatch2/Server.cpp +++ b/cpp/src/IcePatch2/Server.cpp @@ -8,6 +8,7 @@ // ********************************************************************** #include <IceUtil/Options.h> +#include <IceUtil/ArgVector.h> #include <Ice/Service.h> #include <IcePatch2/FileServerI.h> #include <IcePatch2/Util.h> @@ -254,42 +255,15 @@ main(int argc, char* argv[]) // directory is specified as a relative path, we don't // misinterpret that path. // - char** v = new char*[argc + 2]; - char** vsave = new char*[argc + 2]; // We need to keep a copy of the vector because svc.main modifies argv. - - v[0] = new char[strlen(argv[0]) + 1]; - strcpy(v[0], argv[0]); - vsave[0] = v[0]; - - v[1] = new char[sizeof("--nochdir")]; - strcpy(v[1], "--nochdir"); - vsave[1] = v[1]; - - int i; - for(i = 1; i < argc; ++i) - { - v[i + 1] = new char[strlen(argv[i]) + 1]; - strcpy(v[i + 1], argv[i]); - vsave[i + 1] = v[i + 1]; - } - v[argc + 1] = 0; - - try - { - int ac = argc + 1; - status = svc.main(ac, v); - } - catch(...) - { - // Ignore exceptions -- the only thing left to do is to free memory. - } - - for(i = 0; i < argc + 1; ++i) + StringSeq ss; + ss.push_back(argv[0]); + ss.push_back("--nochdir"); + for(int i = 1; i < argc; ++i) { - delete[] vsave[i]; + ss.push_back(argv[i]); } - delete[] v; - delete[] vsave; + IceUtil::ArgVector av(ss); + status = svc.main(av.argc, av.argv); #endif return status; |