I loaded the Delphi XE2 SafeMM port into CodeCentral. I checked that it correctly allocates blocks larger than 4 GB and that it can allocate smaller blocks larger than 4 GB when used in a Win64 application and that it still works correctly in Win32 applications.
I updated my CodeCentral view on July 7, 2012 to fix a bug that causes SafeMM to crash when two threads try to free a large block (> 4K) at the same time. This bug was introduced in version 0.3 of SafeMM by its original developer. If you use this version of SafeMM with an older version of Delphi, you need to wrap the code in FreeLargeBlock
in the critical section, as it was in my version.
Jan goyvaerts
source share