in reply to Re^4: Memory Leak using Win32::OLE::Variant for a SafeArray passed by Reference
in thread Memory Leak using Win32::OLE::Variant for a SafeArray passed by Reference

Close method undef of Com object causes small deallocation of memory but bulk of problem remains.

Did you try Release-ing all the arguments to GetMassListFromScanNum?

Could this change in type controlled by the DLL cause perl to loose control of the SafeArray?

I don't think so ; what i've read so far, reference counting is how COM deals with keeping objects alive -- same as perl does ; its unlikely Win32::OLE is creating any circular references (:anymore:), so the problem is likely with MSFileReader...

You might try VMMap or Virtual Memory Map Viewer to see if you can narrow it down

say add a pause (scalar readline STDIN; ) before and after GetMassListFromScanNumk and see what you can see :/

  • Comment on Re^5: Memory Leak using Win32::OLE::Variant for a SafeArray passed by Reference