--- libgig/trunk/src/gig.cpp 2005/01/29 15:17:59 354 +++ libgig/trunk/src/gig.cpp 2005/02/04 00:21:30 355 @@ -541,7 +541,7 @@ // local buffer reallocation - hope this won't happen if (this->pDecompressionBuffer) delete[] (int8_t*) this->pDecompressionBuffer; this->pDecompressionBuffer = new int8_t[assumedsize << 1]; // double of current needed size - this->DecompressionBufferSize = assumedsize; + this->DecompressionBufferSize = assumedsize << 1; } int16_t compressionmode, left, dleft, right, dright; @@ -681,7 +681,10 @@ Sample::~Sample() { Instances--; - if (!Instances && pDecompressionBuffer) delete[] (int8_t*) pDecompressionBuffer; + if (!Instances && pDecompressionBuffer) { + delete[] (int8_t*) pDecompressionBuffer; + pDecompressionBuffer = NULL; + } if (FrameTable) delete[] FrameTable; if (RAMCache.pStart) delete[] (int8_t*) RAMCache.pStart; } @@ -1404,6 +1407,7 @@ SamplesIterator++; } pSamples->clear(); + delete pSamples; } // free instruments @@ -1414,6 +1418,7 @@ InstrumentsIterator++; } pInstruments->clear(); + delete pInstruments; } }