I'm trying to understand the malloc log, to verify whether memory held by an Object is actually cleared.
In the test scenario, multiple large images are created, all with a unique size so they can be easily found in the memory logs. I attached the entire test scenario as a single image, so that the malloc log can be matched to the line numbers in the malloc log. (note that the largest object is correctly identified as originating from line 48)
All of this is run on simulator with the 16MB pool enabled (Mac, sdk 1.13.0)
Q1: what does the "active" column mean?
I would guess memory that is still allocated at the moment the log was created. This is consistent with line 48 being active and the lines 46 and 47 not being active anymore because they were assigned to the same variable
globalImage. It is not consistent with the images being held by the Testclass(es). While one of the TestClasses might be cleaned up due to it being removed in line 44, the remaining testClass should still hold the memory for the two images it has. That the images are still available to lua is shown in the console.
Q2: Why is the memory for the first TestClass (created on line 42) not marked as active?
Q3: So, is the memory for the second TestClass (created on line 43, removed on line 44) available for re-use or not?