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

André Bargull a.bargull at intensis.de
Mon Dec 10 14:50:50 PST 2007


Not approved.

I get the same error as reported at LPP-5173. But after I've removed the 
call to LzSprite#destroy(..) in LzReplicationManager#destroyClone(..), 
the error was gone. So, why do we call directly LzSprite#destroy(..) at 
that place?

Notes:
- with this change, you can revert my changes for LPP-4879 regarding 
updatePlayDel/doQueuedDel in LzSprite#predestroy resp. #destroy (SWF)
- the current implementation will be quite inefficient for DHTML, 
because in DHTML we still recurse in LzSprite#destroy...!

On 12/10/2007 2:00 PM, P T Withington wrote:
> 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