assertion window of death!

In windows using 1.5.1 I think one of my testers gets this error
what can be the problem?

Bad build? We’re not sure. I’ve already recommended to Josh that he compiles out this code for subsequent releases. Maybe he already did for 1.5.2.

David

oh ok drwr but what does this do? We like as much diagnostics of bad things to come.

It means the low-level allocation watcher has counted more free’s than malloc’s. Most likely, though, it just means a bug in the allocation watcher, not in the overall system.

David

I have the same problem with panda 1.5.2.

Is there anything known about this? I’m working on collada and am suddenly stumbling at the same error.
Both loader.loadModel, pview and dae2egg give this error at the end:

dae2egg: dtool/src/dtoolbase/memoryHook.cxx:325: virtual void MemoryHook::heap_free_array(void*): Assertion `(int)size <= _total_heap_array_size' failed.
Aborted

The odd thing is that it doesn’t show until after the converter finished – it converts fine, it just throws this when it’s finished.
My last build worked fine, but that was at makepanda, since my last build I added lotsa code and dropped makepanda for ppremake.
Is this just a plain bug in Panda3D? Can I work around this? Does anybody maybe have a suggestion where to look? Since I changed a lot of code, it’s impossible to trace this error without some kind of direction.

We also still getting this from time to time. The solution so far been to delete the tmp cache for temporary bam files.

If you’re building your own Panda, you can turn off the code in question by undefining:

#define ALTERNATIVE_MALLOC

in Config.pp, or whatever the equivalent is in makepanda.

David

Thanks! I’m using ppremake, and will try it out next time I find a few hours to recompile panda. (Sidenote: Makepanda doesn’t bother with that define at all.)

Oh, btw, does changing this to rebuild Panda3D entirely from scratch, because everything depends on it or so? Can I just re-make dtoolbase or express or so or the entire tree?

Nope, sorry, it’s a full rebuild. This is very low-level stuff.

David