From 502f3c67dadaf30d34cc1befe3abe98eab41c31d Mon Sep 17 00:00:00 2001 From: kichik Date: Wed, 8 Mar 2006 16:14:36 +0000 Subject: [PATCH] * never delete self on Release(), CLZMA is not a real COM class * safer destructor git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4557 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/clzma.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Source/clzma.cpp b/Source/clzma.cpp index 44bea1f9..a4bfa94b 100644 --- a/Source/clzma.cpp +++ b/Source/clzma.cpp @@ -133,15 +133,23 @@ CLZMA::CLZMA(): _encoder(NULL) hCompressionThread = 0; SetNextOut(NULL, 0); SetNextIn(NULL, 0); + + AddRef(); // will be manually deleted, not released } CLZMA::~CLZMA() { End(); if (hNeedIOEvent) + { CloseHandle(hNeedIOEvent); + hNeedIOEvent = NULL; + } if (hIOReadyEvent) + { CloseHandle(hIOReadyEvent); + hIOReadyEvent = NULL; + } if (_encoder) { delete _encoder;