[3.0] Valgrind detected TextureSet leak and invalid access 38/121938/1
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>
Wed, 29 Mar 2017 10:49:23 +0000 (11:49 +0100)
commite671109cdb8d619bb5197d211e229b46adad6cd4
treef8479da3f25c9d45d5059ec2cf1924777a832c4f
parentc87f4e05bd186d311503af2b5ed8416d764d48f4
[3.0] 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