summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>2010-07-09 02:22:14 +0000
committerbala <balanatarajan@users.noreply.github.com>2010-07-09 02:22:14 +0000
commitf4a121dc217d2ad4e1eaa411f39aca866058bf83 (patch)
treec39cd49e44a62d4776ed98443da2930faa32d6f4
parent2b19119ba0bd368b88a0ca40e6c136854a0b1dcb (diff)
downloadATCD-f4a121dc217d2ad4e1eaa411f39aca866058bf83.tar.gz
Removed usage of ACE_Array from Get_Opt
-rw-r--r--ACE/ace/Get_Opt.cpp46
-rw-r--r--ACE/ace/Get_Opt.h4
2 files changed, 18 insertions, 32 deletions
diff --git a/ACE/ace/Get_Opt.cpp b/ACE/ace/Get_Opt.cpp
index 6c354287a4d..9fb60fc3fcc 100644
--- a/ACE/ace/Get_Opt.cpp
+++ b/ACE/ace/Get_Opt.cpp
@@ -166,24 +166,15 @@ ACE_Get_Opt::~ACE_Get_Opt (void)
{
ACE_TRACE ("ACE_Get_Opt::~ACE_Get_Opt");
- size_t i = 0;
- size_t size = this->long_opts_.size ();
- ACE_Get_Opt_Long_Option *option = 0;
- for (i = 0; i < size; ++i)
+ typedef std::vector<ACE_Get_Opt_Long_Option *>::iterator loiterator;
+
+ loiterator end = this->long_opts_.end ();
+ for (loiterator li = this->long_opts_.begin(); li != end; ++li)
{
- int retval = this->long_opts_.get (option, i);
- if (retval != 0)
- {
- // Should never happen.
- retval = 0;
- continue;
- }
- if (option)
- {
- delete option;
- option = 0;
- }
+ ACE_Get_Opt_Long_Option *tmp = (*li);
+ delete tmp;
}
+
delete this->optstring_;
delete this->last_option_;
}
@@ -555,22 +546,17 @@ ACE_Get_Opt::long_option (const ACE_TCHAR *name,
}
}
- ACE_Get_Opt_Long_Option *option =
- new ACE_Get_Opt_Long_Option (name, has_arg, short_option);
-
- if (!option)
+ std::auto_ptr<ACE_Get_Opt::ACE_Get_Opt_Long_Option>option(
+ new ACE_Get_Opt_Long_Option (name, has_arg, short_option));
+
+ if (!option.get())
return -1;
- // Add to array
- size_t size = this->long_opts_.size ();
- if (this->long_opts_.size (size + 1) != 0
- || this->long_opts_.set (option, size) != 0)
- {
- delete option;
- ACE_ERROR_RETURN
- ((LM_ERROR, ACE_TEXT ("Could not add long option to array.\n")),
- -1);
- }
+ // @@ToDO: Should we call reserve? Is this required?
+ // this->long_opts_.reserve (size + 1);
+ this->long_opts_.push_back(option.release());
+
+
return 0;
}
diff --git a/ACE/ace/Get_Opt.h b/ACE/ace/Get_Opt.h
index bb6636b02fd..e59234e11cc 100644
--- a/ACE/ace/Get_Opt.h
+++ b/ACE/ace/Get_Opt.h
@@ -16,7 +16,7 @@
#include /**/ "ace/pre.h"
#include "ace/SStringfwd.h"
-#include "ace/Containers.h"
+#include <vector>
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -477,7 +477,7 @@ private:
ACE_Get_Opt_Long_Option *long_option_;
/// Array of long options.
- ACE_Array<ACE_Get_Opt_Long_Option*> long_opts_;
+ std::vector<ACE_Get_Opt_Long_Option*> long_opts_;
/// Declare the dynamic allocation hooks.
ACE_ALLOC_HOOK_DECLARE;