[Laszlo-checkins] r7786 - openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf

ptw@openlaszlo.org ptw at openlaszlo.org
Wed Jan 9 09:22:21 PST 2008


Author: ptw
Date: 2008-01-09 09:22:19 -0800 (Wed, 09 Jan 2008)
New Revision: 7786

Modified:
   openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf/LzSprite.as
Log:
Change 20080109-ptw-G by ptw at dueling-banjos.local on 2008-01-09 12:11:23 EST
    in /Users/ptw/OpenLaszlo/ringding-clean
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Fixing a hole where the rain gets in

Bugs Fixed:
LPP-5337 'Multiframe resource assigned via $style within a view that is init stage late runs a bit and gets orphaned in onidle'

Technical Reviewer: max (message://<47844FEA.3000208@openlaszlo.org>)
QA Reviewer: mdemmon (pending)

Details:
    Consider the case where tracking is stopped before checkPlayStatus
    gets to run: Instead of using callOnIdle, which cannot be
    cancelled, register on onidle, so you can be cancelled.

Tests:
    Test case from bug no longer leaves delegates on idle queue



Modified: openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf/LzSprite.as
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf/LzSprite.as	2008-01-09 16:36:47 UTC (rev 7785)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf/LzSprite.as	2008-01-09 17:22:19 UTC (rev 7786)
@@ -1,7 +1,7 @@
 /**
   * LzSprite.as
   *
-  * @copyright Copyright 2001-2007 Laszlo Systems, Inc.  All Rights Reserved.
+  * @copyright Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.
   *            Use is subject to license terms.
   *
   * @topic Kernel
@@ -1309,6 +1309,7 @@
     this.updatePlayStatus();
     this.__LZtracking = false;
     this.updatePlayDel.unregisterAll();
+    this.checkPlayStatusDel.unregisterAll();
 }
 
 
@@ -1364,7 +1365,7 @@
      if (('isaudio' in this.getMCRef()) && (this.getMCRef().isaudio == true)) this.__lzskipplaychecklimit = LzSprite.prototype.__lzskipplaychecklimitmax;
     
     //Debug.warn('checkPlayStatus %w %w %w %w', this.__lzcheckframe, this.frame, this.totalframes, this.__lzskipplaychecklimit);
-    LzIdle.callOnIdle( this.checkPlayStatusDel );
+    this.checkPlayStatusDel.register( LzIdle, "onidle" );
 }
 
 /**
@@ -1377,11 +1378,10 @@
     this.updatePlayStatus();
     this.__lzskipplaycheck++;
     if (this.__lzskipplaycheck < this.__lzskipplaychecklimit) {
-        LzIdle.callOnIdle( this.checkPlayStatusDel );
         return;
     }
+    this.checkPlayStatusDel.unregisterAll();
 
-
     if ( this.frame != this.__lzcheckframe || this.totalframes != this.__lzchecktotalframes){
         //Debug.write('checkPlayStatus2 tracking', this.frame, this.__lzcheckframe);
         this.trackPlay();



More information about the Laszlo-checkins mailing list