From f4a121dc217d2ad4e1eaa411f39aca866058bf83 Mon Sep 17 00:00:00 2001 From: bala Date: Fri, 9 Jul 2010 02:22:14 +0000 Subject: Removed usage of ACE_Array from Get_Opt --- ACE/ace/Get_Opt.cpp | 46 ++++++++++++++++------------------------------ 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::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_ptroption( + 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 #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 long_opts_; + std::vector long_opts_; /// Declare the dynamic allocation hooks. ACE_ALLOC_HOOK_DECLARE; -- cgit v1.2.1