I wonder if it would be better to rename __LZlateInit to  
__LZinstantiated (reversing the sense).  It would then be false  
initially and would only be set true by __LZinstantiationDone.   
createChildren would not have to change it.  __LZcallInit would only  
recurse into subnodes that were not already inited and were finished  
instantiating.  I think that would achieve the same end, but make the  
name and logic a little simpler?

Otherwise approved.  Great work!


On 2009-08-13, at 18:24EDT, André Bargull wrote:

> Change 20090812-bargull-C3Q by barg...@dell--p4--2-53 on 2009-08-12  
> 23:52:25
> in /home/Admin/src/svn/openlaszlo/trunk
> for http://svn.openlaszlo.org/openlaszlo/trunk
>
> Summary: improve "destroy when initializing" behaviour
>
> New Features:
>
> Bugs Fixed: LPP-8386 (constrained datapath leads to runtime errors  
> for )
>
> Technical Reviewer: ptw
> QA Reviewer: (pending)
> Doc Reviewer: (pending)
>
> Documentation:
>
> Release Notes:
>
> Details:
> Changes for LzNode:
> 1) applying constraints may destroy a node (eg. by replication),  
> handle this case in LzNode#__LZresolveReferences()
> 2) instantiating subnodes may destroy a node, handle this case in  
> LzNode#__LZcallInit()
> 3) calling determinePlacement() may destroy a node (see ), handle  
> this case in LzNode#construct()
> 4) you cannot store "subnodes.length" before iterating over the  
> subnodes in LzNode#__LZcallInit(), because the subnodes array may  
> change (cf. 2nd testcase from bugreport)
> 5) set LzNode#__LZlateinit to "true" in LzNode#createChildren() for  
> all initstages, this prevents a corner case in which nodes are  
> inited two times (4th testcase from bugreport). Set __LZlateinit  
> back to "false" in LzNode#__LZinstantiationDone(), so nodes are  
> processed properly again.
> 6) remove some cruft:
> - LzNode#getAttribute(), it is deprecated since 4.1
> - the $refs-mechanism, it was scheduled to be removed in 4.1+
> - setSetters() and addSetter(), also scheduled for 4.1+
>
> Changes for LzCanvas:
> - all changes from LzNode#__LZcallInit() are copied over, without 2)  
> because canvas can't be destroyed
>
>
> Tests:
> all testcases from bugreport (swf8, swf9)
> smokecheck (swf8, swf9, dhtml)
> component sampler (swf8, swf9, dhtml)
>
> Files:
> M WEB-INF/lps/lfc/core/LzNode.lzs
> M WEB-INF/lps/lfc/views/LaszloCanvas.lzs
>
> Changeset: 
> http://svn.openlaszlo.org/openlaszlo/patches/20090812-bargull-C3Q.tar
>


_______________________________________________
Laszlo-reviews mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-reviews

Reply via email to