History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: LPP-4879
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: P0 P0
Assignee: André Bargull
Reporter: André Bargull
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
OpenLaszlo

Memory leak in "LzUtils.callback"

Created: 11/Oct/07 01:54 PM   Updated: 28/Nov/07 02:30 PM
Component/s: Kernel - DHTML
Affects Version/s: RingDing (4.1)
Fix Version/s: RingDing (4.1)

Time Tracking:
Not Specified

Severity: Major
Fixed in Change#: 7,406
Fixed in branch: trunk
Runtime: N/A
Fix in hand: False


 Description  « Hide
Memory leak in DHTML for IE6.

To reproduce:
1. call "foo.destroy()"
2. inspect "LzUtils.callback.__scopes", should be empty, but it isn't!

LzUtils.callback.__scopes[0].owner.parent.parent.parent === foo

LzUtils.callback.__scopes[0].__parent.__parent.destroyed === true
LzUtils.callback.__scopes[0].__parent.destroyed !== true

[code]
<canvas debug="true" >
  
  <script>
    Debug.showInternalProperties=true;
  </script>
  
  <view width="80%" id="foo" >
    <button />
  </view>
  
</canvas>
[/code]

 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Amy Muntz - 24/Oct/07 09:57 AM
Andre - could you propose a fix for this? Thanks.

André Bargull - 25/Oct/07 03:31 PM
Destroying subsprites is totally broken for SWF and DHTML!
Fixing DHTML is really easy, but for SWF LzSprite#destroy(..) needs to be re-written.

André Bargull - 03/Nov/07 08:31 AM
Work almost finished, but LzUnit (and therefore also smoketest) does not work at the moment for IE6. As soon as this is running again, I'll send a changeset out for review.

André Bargull - 28/Nov/07 02:30 PM
------------------------------------------------------------------------
r7406 | bargull | 2007-11-28 23:29:02 +0100 (Wed, 28 Nov 2007) | 30 lines
Ge?\195?\164nderte Pfade:
   M /openlaszlo/trunk/WEB-INF/lps/lfc/core/LzNode.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf/LzSprite.as
   M /openlaszlo/trunk/WEB-INF/lps/lfc/views/LaszloView.lzs
   M /openlaszlo/trunk/lps/components/base/basecomponent.lzx
   M /openlaszlo/trunk/lps/components/base/baseformitem.lzx
   M /openlaszlo/trunk/lps/components/base/basetabs.lzx
   M /openlaszlo/trunk/lps/components/base/basetree.lzx
   M /openlaszlo/trunk/lps/components/base/basewindow.lzx
   M /openlaszlo/trunk/lps/components/base/submit.lzx
   M /openlaszlo/trunk/lps/components/lz/basefloatinglist.lzx

Change 20071025-bargull-2 by bargull@dell--p4--2-53 on 2007-10-25 23:59:07
    in /home/Admin/src/svn/openlaszlo/trunk
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Bugs related to "destroy"

New Features:

Bugs Fixed:
LPP-4879 - "Memory leak in "LzUtils.callback""

Technical Reviewer: max
QA Reviewer: promanik
Doc Reviewer: (pending)

Documentation:

Release Notes:

Details:
"LzView#destroy(..)" must call "this.sprite.destroy(true)", otherwise subsprites weren't destroyed. Whereas subsprites means a sprite's "__c
hildren" (DHTML-only).
Removed "LzNode#__LZsetDefaultHandler(..)": this method is no longer used and ptw says it has been overlooked when LPP-3167 was implemented.

Removed "LzSprite#predestroy()" (as): this method was defined two times in LzSprite (as), so I've just removed one definition.
Fixed "LzSprite#destroy(..)" (as): unregistering delegates did not work, moved to "LzSprite.predestroy(..)".
Updated several components to call "super.destroy.apply(this, arguments)" instead of solely "super.destroy()".


Tests:


------------------------------------------------------------------------