EVALUATION
in latest build the correct behavior is happening, confirmed
|
|
|
EVALUATION
The handle for the lzma.dll was private as there was two HMODULE definition for the same variable (extraCompLibHandle), the one that was public was initialized to null and then later when the lzma.dll was loaded, another HMODULE was defined with same name (extraCompLibHandle) so the public extraCompLibHandle was never assigned a real value of the handle of the lzma load and the method void ReleaseExtraCompression(HINSTANCE
hInst) was using the public value which was initialized to null. So removing the HMODULE definition from within the method updated the public value. Also added logic to the FreeLibrary method to make sure the handle used for freeing up the lib is not null. This change is done in WrapperUtils.cpp
Added another method added to RemoveFile to remove the lzma.dll as soon as its use is done. This change is done in jinstall.cpp and jinstall.h
The file is not actually installed via the installer for which we use RemoveFile table so it does not make sense to add it there.
|
|
|
EVALUATION
After some evaluation, it is found the key issue is that the lzma.dll is loaded in jinstall and not being released properly. So, it can't be deleted. So, the fix is to modify the code logic to release the dll in all of the scenarios. Chris G. will fix it in 6u14 since he owns the original code and knows the logic better.
|
|
|
EVALUATION
Pete wrote the orginal code and I brought it into the install wrappers without testing ReleaseExtraCompression().
|
|
|
EVALUATION
see comment by Chris
|
|
|