[Laszlo-dev] For Review: Change 20071209-ptw-k Summary: Fix Sprite memory Leaks

P T Withington ptw at pobox.com
Mon Dec 10 05:00:06 PST 2007


Change 20071209-ptw-k by ptw at dueling-banjos.local on 2007-12-09  
09:32:18 EST
     in /Users/ptw/OpenLaszlo/ringding-2
     for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Fix Sprite memory Leaks

Bugs Fixed:
LPP-5217 'windows can leak memory

Technical Reviewer: a.bargull at intensis.de (pending)
QA Reviewer: philip at pbrdev.com (pending)
Doc Reviewer: (pending)

Details:
     LzSprite.*:  In #destroy set __LZdeleted flag to prevent events
     from resurrecting you.  No need for recursive sprite destruction
     now.

     LzIdle: Be careful to create coi Array on instance, not prototype.

     LzNode: Add comment to explain importance of __LzDeleted flag.

     LaszloView: Destroy the sprite _before_ you check for a recursive
     call.

     newcontent, scrollingtext: Remove unused id (that causes a leak).

Tests:
     I modified Phil's test case to only create/destroy 1 window per
     click.  The test methodology is:

     1. Start test
     2. Click twice to create any shared substrate
     3. Debug.markObjects()
     4. Click once
     5. Debug.findNewObjects()
     6. Debug.whyAlive()

     Result: Before change, many leaked window sprites.  After change,  
no
     leaked window sprites.

     NOTE: There are still some other minor leaks that I have not
     attempted to address here, but will report as a separate bug.

Files:
M      WEB-INF/lps/lfc/kernel/swf/LzSprite.as
M      WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js
M      WEB-INF/lps/lfc/kernel/dhtml/LzInputTextSprite.js
M      WEB-INF/lps/lfc/kernel/swf9/LzSprite.lzs
M      WEB-INF/lps/lfc/services/LzIdle.lzs
M      WEB-INF/lps/lfc/core/LzNode.lzs
M      WEB-INF/lps/lfc/views/LaszloView.lzs
M      lps/components/debugger/newcontent.lzx
M      lps/components/debugger/scrollingtext.lzx

Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20071209-ptw-k.tar


More information about the Laszlo-dev mailing list