diff options
author | bala <balanatarajan@users.noreply.github.com> | 2010-07-09 02:22:14 +0000 |
---|---|---|
committer | bala <balanatarajan@users.noreply.github.com> | 2010-07-09 02:22:14 +0000 |
commit | f4a121dc217d2ad4e1eaa411f39aca866058bf83 (patch) | |
tree | c39cd49e44a62d4776ed98443da2930faa32d6f4 | |
parent | 2b19119ba0bd368b88a0ca40e6c136854a0b1dcb (diff) | |
download | ATCD-f4a121dc217d2ad4e1eaa411f39aca866058bf83.tar.gz |
Removed usage of ACE_Array from Get_Opt
-rw-r--r-- | ACE/ace/Get_Opt.cpp | 46 | ||||
-rw-r--r-- | ACE/ace/Get_Opt.h | 4 |
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; |