Ok, well I changed obj_monster_basic collision event to a collision with obj_wall1 instead of obj_wall_basic, and that also stopped the memory leak. Now I went further and made a test case that shows the bug also occurs without inheritance, just with collisions between objects.
By simply setting obj_monster1's sprite to <no sprite> the memory leak will also disappear, give it back it's sprite, and the memory leak comes back.
As for the instantiation of obj_monster_basic, I know that is not happening because a show_message call in the create event yields nothing. And I do not see them in the room instance list either, obj_wall_basic as well.
Now, I know there are 367 instances of objects that inherit obj_wall_basic, and 50 instances of objects that inherit obj_monster basic, because of the following code in the Room Create code.
show_message(string(instance_number(obj_wall_basic)));
show_message(string(instance_number(obj_monster_basic)));Which I also tried the following variation.
show_message(string(instance_number(obj_wall_basic)));
show_message(string(instance_number(obj_monster1)));Which yielded the same results.
Quote from: JoshDreamlandI'd like the exact EDL for both events, ideally
There's only 1 event, and I have provided the code for it. obj_monster_basic has a collision event with obj_wall_basic, obj_monster1 has no collision code and automatically inherits the collision event with obj_wall_basic
I have created the following minimal test cases that reproduce the bug.
WARNING! Run with caution, they leak 4mb's per second for me.
This is with inheritance.
https://www.dropbox.com/s/moe88bjkebm6ioi/inheritanceleak.gm81This is one that has no inheritance, just a collision event between one object and another, the memory leak still occurs.
https://www.dropbox.com/s/4ac5evbozjfvczq/collisionmemleak.gm81