diff options
Diffstat (limited to 'ace/Service_Repository.cpp')
-rw-r--r-- | ace/Service_Repository.cpp | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/ace/Service_Repository.cpp b/ace/Service_Repository.cpp index 41339bbcf0b..198ac3c6830 100644 --- a/ace/Service_Repository.cpp +++ b/ace/Service_Repository.cpp @@ -171,8 +171,8 @@ ACE_Service_Repository::close (void) { ACE_Service_Type *s = ACE_const_cast (ACE_Service_Type *, this->service_vector_[i]); - --this->current_size_; delete s; + --this->current_size_; } delete [] this->service_vector_; @@ -326,23 +326,23 @@ int ACE_Service_Repository::remove (const ACE_TCHAR name[]) { ACE_TRACE ("ACE_Service_Repository::remove"); - ACE_Service_Type *s = 0; - { - ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1)); - int i = this->find_i (name, 0, 0); - - if (i == -1) - return -1; - - s = ACE_const_cast (ACE_Service_Type *, - this->service_vector_[i]); - --this->current_size_; - - if (this->current_size_ >= 1) - this->service_vector_[i] - = this->service_vector_[this->current_size_]; - } + ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1)); + + int i = this->find_i (name, 0, 0); + + if (i == -1) + return -1; + + ACE_Service_Type *s = ACE_const_cast (ACE_Service_Type *, + this->service_vector_[i]); delete s; + + --this->current_size_; + + if (this->current_size_ >= 1) + this->service_vector_[i] + = this->service_vector_[this->current_size_]; + return 0; } |