From 31e2bc11415beaa66b641f4eb6414d3a75094833 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Fri, 8 Nov 2019 22:52:23 +0100 Subject: [PATCH] Free Vector's memory during move assignment. --- server/TracyVector.hpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server/TracyVector.hpp b/server/TracyVector.hpp index 0502066f..43b16061 100644 --- a/server/TracyVector.hpp +++ b/server/TracyVector.hpp @@ -63,7 +63,11 @@ public: Vector& operator=( const Vector& ) = delete; tracy_force_inline Vector& operator=( Vector&& src ) noexcept { - delete[] (T*)m_ptr; + if( m_capacity != MaxCapacity() ) + { + memUsage.fetch_sub( Capacity() * sizeof( T ), std::memory_order_relaxed ); + delete[] (T*)m_ptr; + } memcpy( this, &src, sizeof( Vector ) ); memset( &src, 0, sizeof( Vector ) ); return *this;