From b3fd345b06263efcf0b580b98d3d865074a3942e Mon Sep 17 00:00:00 2001 From: weidai Date: Sun, 18 Jul 2004 09:23:13 +0000 Subject: fix compile with -msse2 on systems without memalign() git-svn-id: svn://svn.code.sf.net/p/cryptopp/code/trunk/c5@184 57ff6487-cd31-0410-9ec3-f628ee90f5f0 --- secblock.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'secblock.h') diff --git a/secblock.h b/secblock.h index ea95e35..6797144 100644 --- a/secblock.h +++ b/secblock.h @@ -59,9 +59,11 @@ typename A::pointer StandardReallocate(A& a, T *p, typename A::size_type oldSize if (preserve) { - typename A::pointer newPointer = a.allocate(newSize, NULL); + A b; + typename A::pointer newPointer = b.allocate(newSize, NULL); memcpy(newPointer, p, sizeof(T)*STDMIN(oldSize, newSize)); a.deallocate(p, oldSize); + std::swap(a, b); return newPointer; } else @@ -181,7 +183,11 @@ public: return p; } - return StandardReallocate(*this, p, oldSize, newSize, preserve); + pointer newPointer = allocate(newSize, NULL); + if (preserve) + memcpy(newPointer, p, sizeof(T)*STDMIN(oldSize, newSize)); + deallocate(p, oldSize); + return newPointer; } size_type max_size() const {return STDMAX(m_fallbackAllocator.max_size(), S);} -- cgit v1.2.1