diff options
Diffstat (limited to 'ACE/ace')
-rw-r--r-- | ACE/ace/Auto_Ptr.h | 4 | ||||
-rw-r--r-- | ACE/ace/Malloc.h | 2 | ||||
-rw-r--r-- | ACE/ace/Malloc_T.cpp | 26 | ||||
-rw-r--r-- | ACE/ace/config-win32-msvc-142.h | 8 |
4 files changed, 29 insertions, 11 deletions
diff --git a/ACE/ace/Auto_Ptr.h b/ACE/ace/Auto_Ptr.h index 9c10c1fde61..01236ce8198 100644 --- a/ACE/ace/Auto_Ptr.h +++ b/ACE/ace/Auto_Ptr.h @@ -73,6 +73,8 @@ ACE_END_VERSIONED_NAMESPACE_DECL using std::auto_ptr; #else /* !ACE_LACKS_AUTO_PTR */ +ACE_BEGIN_VERSIONED_NAMESPACE_DECL + /** * @class auto_ptr * @@ -90,6 +92,8 @@ public: X *operator-> () const; }; +ACE_END_VERSIONED_NAMESPACE_DECL + #endif /* !ACE_LACKS_AUTO_PTR */ ACE_BEGIN_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/Malloc.h b/ACE/ace/Malloc.h index 06cc550c507..80cdcbf7421 100644 --- a/ACE/ace/Malloc.h +++ b/ACE/ace/Malloc.h @@ -287,6 +287,8 @@ public: void dump () const; }; + using MALLOC_HEADER_PTR = ACE_Malloc_Header *; + /** * @class ACE_Name_Node * diff --git a/ACE/ace/Malloc_T.cpp b/ACE/ace/Malloc_T.cpp index ff8d6563db0..47d9126e96a 100644 --- a/ACE/ace/Malloc_T.cpp +++ b/ACE/ace/Malloc_T.cpp @@ -633,8 +633,8 @@ ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::shared_malloc (size_t nbytes) (nbytes + sizeof (MALLOC_HEADER) - 1) / sizeof (MALLOC_HEADER) + 1; // Add one for the <MALLOC_HEADER> itself. - MALLOC_HEADER *prevp = 0; - MALLOC_HEADER *currp = 0; + typename ACE_CB::MALLOC_HEADER_PTR prevp = 0; + typename ACE_CB::MALLOC_HEADER_PTR currp = 0; ACE_SEH_TRY { @@ -671,7 +671,7 @@ ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::shared_malloc (size_t nbytes) // allocate at tail end. ACE_MALLOC_STATS (++this->cb_ptr_->malloc_stats_.nblocks_); currp->size_ -= nunits; - currp += currp->size_; + currp += static_cast<int> (currp->size_); MALLOC_HEADER::init_ptr (&currp->next_block_, 0, this->cb_ptr_); @@ -697,7 +697,7 @@ ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::shared_malloc (size_t nbytes) if (remap_addr != 0) this->cb_ptr_ = (ACE_CB *) remap_addr; - if (currp != 0) + if (currp) { ACE_MALLOC_STATS (++this->cb_ptr_->malloc_stats_.nblocks_); ACE_MALLOC_STATS (++this->cb_ptr_->malloc_stats_.nchunks_); @@ -787,8 +787,8 @@ ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::shared_free (void *ap) return; // Adjust AP to point to the block MALLOC_HEADER - MALLOC_HEADER *blockp = ((MALLOC_HEADER *) ap) - 1; - MALLOC_HEADER *currp = this->cb_ptr_->freep_; + typename ACE_CB::MALLOC_HEADER_PTR blockp = ((MALLOC_HEADER *) ap) - 1; + typename ACE_CB::MALLOC_HEADER_PTR currp = this->cb_ptr_->freep_; // Search until we find the location where the blocks belongs. Note // that addresses are kept in sorted order. @@ -797,18 +797,20 @@ ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::shared_free (void *ap) { for (; blockp <= currp - || blockp >= (MALLOC_HEADER *) currp->next_block_; + || blockp >= currp->next_block_; currp = currp->next_block_) { - if (currp >= (MALLOC_HEADER *) currp->next_block_ + if (currp >= currp->next_block_ && (blockp > currp - || blockp < (MALLOC_HEADER *) currp->next_block_)) + || blockp < currp->next_block_)) // Freed block at the start or the end of the memory pool. break; } // Join to upper neighbor. - if ((blockp + blockp->size_) == currp->next_block_) + typename ACE_CB::MALLOC_HEADER_PTR next = blockp; + next += static_cast<int> (blockp->size_); // ACE_Based_Pointer has += but not + + if (next == currp->next_block_) { ACE_MALLOC_STATS (--this->cb_ptr_->malloc_stats_.nblocks_); blockp->size_ += currp->next_block_->size_; @@ -818,7 +820,9 @@ ACE_Malloc_T<ACE_MEM_POOL_2, ACE_LOCK, ACE_CB>::shared_free (void *ap) blockp->next_block_ = currp->next_block_; // Join to lower neighbor. - if ((currp + currp->size_) == blockp) + next = currp; + next += static_cast<int> (currp->size_); + if (next == blockp) { ACE_MALLOC_STATS (--this->cb_ptr_->malloc_stats_.nblocks_); currp->size_ += blockp->size_; diff --git a/ACE/ace/config-win32-msvc-142.h b/ACE/ace/config-win32-msvc-142.h index af47ad9f722..daed3972259 100644 --- a/ACE/ace/config-win32-msvc-142.h +++ b/ACE/ace/config-win32-msvc-142.h @@ -25,5 +25,13 @@ #include "ace/config-win32-msvc-141.h" +#if _MSVC_LANG >= 202002L +# define ACE_HAS_CPP20 +#endif /* _MSVC_LANG >= 202002L */ + +#ifdef ACE_HAS_CPP17 +# define ACE_LACKS_AUTO_PTR +#endif + #include /**/ "ace/post.h" #endif /* ACE_CONFIG_WIN32_MSVC_142_H */ |