From 6e57002a90c24ac93cca7564bf1b7297e9ab23f8 Mon Sep 17 00:00:00 2001 From: Tomasz Sowa Date: Sat, 27 Oct 2012 07:45:39 +0000 Subject: [PATCH] fixed: in MemBuffer::MemBuffer(const MemBuffer<> & arg) we have to initialize some variables before calling the operator= git-svn-id: svn://ttmath.org/publicrep/pikotools/trunk@434 e52654a7-88a9-db11-a3e9-0013d4bc506e --- membuffer/membuffer.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/membuffer/membuffer.h b/membuffer/membuffer.h index bc8f737..63e914f 100644 --- a/membuffer/membuffer.h +++ b/membuffer/membuffer.h @@ -156,6 +156,9 @@ private: size_t size_allocated; // how many memory is reserved size_t size_reserved; // memory reserved by reserve(), it is used by clear() + // used by ctors + void Initialize(); + void add_dynamic_node(); }; @@ -440,7 +443,7 @@ bool MemBuffer::const_iterator::operator template -MemBuffer::MemBuffer() +void MemBuffer::Initialize() { size_reserved = 0; size_used = 0; @@ -452,6 +455,13 @@ MemBuffer::MemBuffer() } +template +MemBuffer::MemBuffer() +{ + Initialize(); +} + + template MemBuffer::~MemBuffer() { @@ -468,6 +478,7 @@ MemBuffer::~MemBuffer() template MemBuffer::MemBuffer(const MemBuffer & arg) { + Initialize(); operator=(arg); }