Valgrind detected TextureSet leak and invalid access 50/117850/4
authorNick Holland <nick.holland@partner.samsung.com>
Tue, 28 Mar 2017 10:41:04 +0000 (11:41 +0100)
committerNick Holland <nick.holland@partner.samsung.com>
Tue, 28 Mar 2017 10:41:04 +0000 (11:41 +0100)
commit5ccda65a296046076deabf99b944f41eba28830a
tree405c1e8a3c250898661fbfc086ceb0510fd17dc2
parent9ff8303dd560104ebf45efa9cde786f182ca4026
Valgrind detected TextureSet leak and invalid access

Memory leak:

If a public API TextureSet gets deleted, it sends a
message to update-manager (RemoveTextureSet).
The scene graph side TextureSet gets removed from
update manager, but it never gets deleted.

Invalid memory access:

Currently when a scene graph TextureSet gets deleted
the renderers using that TextureSet are not notified.

So when a Render gets deleted it would call
TextureSet->RemoveObserver( this );

on an already deleted TextureSet.

DALi however doesn't crash at this point,
because the TextureSet is stored in a memory
 pool so the object is still reachable.

Change-Id: Icf0f5a3e55d3ba7537f40db08accad04ae4440f7
dali/internal/update/manager/update-manager.cpp
dali/internal/update/rendering/scene-graph-renderer.cpp
dali/internal/update/rendering/scene-graph-renderer.h
dali/internal/update/rendering/scene-graph-texture-set.cpp