-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Raster/TexturePoolHolder leaks textures #5136
Comments
|
Oh my, this looks like my eyes missed this while batch replacing strings on my IDE. Will send a patch soon. |
Checking the code, the |
Oh, that I'd missed.. I tested again with a clean master (as I had commented out just that line last time) and the memory-leak/crashing is still there. |
👍 For the purpose of readability |
Fixes an issue where a moved {GL,TexturePool}Holder would use an invalid pointer when accessing 'objectStore'. Fixes #5136.
Reopening for verification - @jonkan can you please verify? |
We will want to include an iOS changelog entry for this fix, as it affected iOS 3.2.x. Android 4.0.x is also affected, but I’m not sure if 4.1.0 will include this? /cc @bleege |
@friedbunny Thanks for the ping. I branched |
@brunoabinader Awesome! That solved it, not seeing any crashes or leaks. 👍 |
Thank you @jonkan! |
Thanks for confirming and getting this fixed @jonkan @brunoabinader. I'll cherry pick the remaining two commits into the |
Awesome @bleege, thanks! |
Fixes an issue where a moved {GL,TexturePool}Holder would use an invalid pointer when accessing 'objectStore'. Fixes #5136.
Updated the iOS changelog in 2f25c1a — this issue will be fixed in the v3.3.0 release (and whichever pre-release comes after alpha 3). |
We're seeing a lot of "out of memory"-crashes after a while of heavy panning (iPad Air 2, a raster only stylesheet containing two raster-layers, both using 1024px tiles).
Trying to track down what's eating all the memory I found that in gl_object_store.cpp,
TexturePoolHolder::reset()
it seems textures are never deleted due to the lineif (!bool()) return;
.There's also the line
if (bool()) return;
which to me seems to have no purpose?Or am I missing something?
I can also add that, with those lines removed
TexturePoolHolder::reset()
seems to always be called having a NULLobjectStore
when called fromRaster::~Raster()
...The text was updated successfully, but these errors were encountered: