
On Fri, 2004-08-27 at 14:37, MenTaLguY wrote:
Talking to Simarilius, it looks like the version of libgc we've been using on Win32 has been built to replace the standard malloc.
This should in principle be harmless (except that the collector will be scanning a lot of memory it does not need to, and might mistake e.g. bitmap data for pointers), but
Hrm. Didn't finish my thought there.
The thing is, I trust the boehm collector on Win32, provided we use it conservatively, as it's been very well tested by other projects before us (e.g. currently Mono is using it exclusively on Win32 for memory allocation).
However, I believe less conservative usages (like attempting to override the system allocator with it) are problematic.
If the override isn't perfect, for example, we could end up with memory allocated by the Win32 heap allocation API passed to GC_FREE(), or one of the Win32 heap freeing functions getting passed a gc-managed pointer.
That would be consistent with the symptoms and backtraces we appear to be seeing with the Win32 crashes; dying either in GC_free() or in a Win32 heap free function.
-mental