Why would they not be real? Usually when madExcept reports a leak, it's real. There may be bugs in madExcept, of course, but your first assumption should be that what madExcept reports is real - unless there are indications that suggest otherwise.
@brian, are you sure this is a bug in madExcept? Is "VirtualFree" called for this allocated memory? If so, can you create a little demo project for me which reproduces this problem?
FWIW, the leak report seems to indicate that the allocated memory area is still readable, which suggests that it was *not* freed. This suggests that it's a real leak and not a bug in madExcept.
Actually nevermind this one, the issue seems more complex and I'm not sure what's going on and whether it's maybe the jpeg decoder at fault: with the option to report leaks I get an exception the 1st time I call JpegDecode, "EInvalidOp/Invalid floating point operation.", but then.. if I call JpegDecode again, the 2nd time it works, and from then on.. it doesn't raise an exception again unless I restart the exe (and it never fails if I disable the resource leak setting)
Hmmmm... If you want me to look into that, I'd need to know which exact Delphi version you're using, and I'd need a small demo project to reproduce the issue on my development PC.
Ok, it seems that the madExcept32.dll (used for leak checking) somehow changes the FPU exception mask in such a way that floating point errors result in an exception. Funny enough, if I compile that DLL with Delphi 7, the problem does not occur. If I compile that DLL with Delphi XE2, the problem occurs. What is more: The madExcept32.dll in its initialization already calls the RTL to force floating point exceptions to be turned off - but this doesn't seem to work for XE2! Looks like a bug in Delphi.
Anyway, I've more or less worked around the issue now. At least your test project shouldn't crash, anymore, with the next madExcept version. I still need to find a clean proper fix for this, though...
You mean the JpecDecode ASM code? I'm not totally sure about that. The crash occurred when the madExcept32.dll's leak checking called the RTL function "Move". That function internally uses the FPU to move memory around. For reason "Move" resulted in an FPU exception being raised. I've now fixed this problem just for "Move", and that made the JpecDecode problem go away. I'm not sure if anyone is really at fault here. For all I know, maybe the FPU exceptions were intentionally activated by JpecDecode and then me calling "Move" behind JpecDecode's back produced the problem. Or maybe it's really a bug inside of JpecDecode or inside of Move, or something. In any case, the problem appears to be fixed now in the new 4.0.11 madExcept release.