Skip to content
Snippets Groups Projects
Commit 4a065a93 authored by Pietro Incardona's avatar Pietro Incardona
Browse files

Fixing destroy

parent 6614dc2b
No related branches found
No related tags found
No related merge requests found
......@@ -22,7 +22,7 @@ libofpmmemory_se2_a_SOURCES = memory/HeapMemory.cpp $(CUDA_SOURCES) memory/PtrMe
libofpmmemory_se2_a_CXXFLAGS = $(INCLUDES_PATH) $(BOOST_CPPFLAGS) -I/usr/local/include -DSE_CLASS2
libofpmmemory_se2_a_CFLAGS =
nobase_include_HEADERS = memory/ExtPreAlloc.hpp memory/HeapMemory.hpp memory/memory.hpp memory/PreAllocHeapMemory.hpp memory/PtrMemory.hpp \
nobase_include_HEADERS = memory/ExtPreAlloc.hpp memory/BHeapMemory.hpp memory/HeapMemory.hpp memory/memory.hpp memory/PreAllocHeapMemory.hpp memory/PtrMemory.hpp \
Memleak_check.hpp ptr_info.hpp \
util/se_util.hpp
......
......@@ -64,7 +64,7 @@ public:
//! Constructor, we choose a default alignment of 32 for avx
BHeapMemory()
:HeapMemory()
:HeapMemory(),buf_sz(0)
{};
virtual ~BHeapMemory()
......@@ -118,7 +118,7 @@ public:
* \return true if the resize operation complete correctly
*
*/
virtual size_t size()
virtual size_t size() const
{
return buf_sz;
}
......
......@@ -67,6 +67,10 @@ void HeapMemory::destroy()
if (dmOrig != NULL)
delete [] dmOrig;
sz = 0;
dm = NULL;
dmOrig = NULL;
}
......@@ -166,13 +170,13 @@ size_t HeapMemory::size() const
bool HeapMemory::resize(size_t sz)
{
// if the allocated memory is enough, do not resize
if (sz <= size())
if (sz <= HeapMemory::size())
return true;
//! Allocate the device memory if not done yet
if (size() == 0)
return allocate(sz);
if (HeapMemory::size() == 0)
return HeapMemory::allocate(sz);
//! Create a new buffer if sz is bigger than the actual size
byte * tdm;
......@@ -192,16 +196,16 @@ bool HeapMemory::resize(size_t sz)
//! copy from the old buffer to the new one
#ifdef SE_CLASS2
check_valid(tdm,size());
check_valid(dm,size());
check_valid(tdm,HeapMemory::size());
check_valid(dm,HeapMemory::size());
#endif
memcpy(tdm,dm,size());
memcpy(tdm,dm,HeapMemory::size());
this->sz = sz;
//! free the old buffer
destroy();
HeapMemory::destroy();
//! change to the new buffer
......
......@@ -140,7 +140,7 @@ public:
virtual ~HeapMemory()
{
if(ref_cnt == 0)
destroy();
HeapMemory::destroy();
else
std::cerr << "Error: " << __FILE__ << " " << __LINE__ << " destroying a live object" << "\n";
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment