Fix memory leak with the shared distance field glyph cache.
authorAndrew den Exter <andrew.den-exter@nokia.com>
Wed, 14 Mar 2012 05:28:27 +0000 (15:28 +1000)
committerQt by Nokia <qt-info@nokia.com>
Wed, 14 Mar 2012 09:26:52 +0000 (10:26 +0100)
commit4cd2f0bb2ff262bafb09eae23db919714858e4a2
treebcc4f9a913dd9f52eae0d0e948ba3cb37b6f11b0
parentd73e6d4374e21a4137b1b83fa76cf9600b214a8b
Fix memory leak with the shared distance field glyph cache.

A new glyph node instance registers its owner element with its
glyph cache which in the case of the shared distance field glyph cache
connects a signal from the cache to a slot on the owner, changing the
text creates a new node but destroying the old node didn't remove the
connection causing them to accumulate over time.

In the glyph node; unregister the owner element from the cache on
destruction, and in the cache only connect an owner element the
first time it is registered and keep a reference count so the
items can be disconnected when registrations from all nodes have
been cancelled.

Change-Id: Ibf32a146e146dbbf4e0556d1bd756465bd8e45ba
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
src/quick/scenegraph/qsgdistancefieldglyphnode.cpp
src/quick/scenegraph/qsgshareddistancefieldglyphcache.cpp
src/quick/scenegraph/qsgshareddistancefieldglyphcache_p.h