[Laszlo-dev] For Review: Change 20071105-ptw-V Summary: Ensure deferred events do not recurse
P T Withington
ptw at pobox.com
Fri Nov 30 09:41:58 PST 2007
I updated the change to correctly handle your new test case. Would
you like to re-review it (http://svn.openlaszlo.org/openlaszlo/patches/20071105-ptw-V.tar
)
I 'improved' your test case just a bit to make more sense to me:
<canvas debug="true" >
<class name="foo" extends="node" >
<attribute name="bar" value="123" setter="setBar(bar)" />
<method name="setBar" args="bar" >
this.bar = bar;
if (this["onbar"]) {
this.onbar.sendEvent(bar);
}
</method>
<method name="provokeError" >
this.setBar("789");
</method>
<method name="provokeError2" >
this.setBar("xxx");
</method>
</class>
<foo bar="456" >
<handler name="onbar" args="bar">
Debug.write("onbar - 1 - begin with %s", bar);
this.provokeError();
Debug.write("onbar - 1 - end with %s", this.bar);
</handler>
<handler name="onbar" args="bar">
Debug.write("onbar - 2 - begin with %s", bar);
this.provokeError2();
Debug.write("onbar - 2 - end with %s", this.bar);
</handler>
<!-- later -->
<handler name="oninit" reference="canvas" >
Debug.write("-----");
this.setBar("abc");
</handler>
</foo>
</canvas>
On 2007-11-06, at 19:28 EST, André Bargull wrote:
> Approved.
>
> I've got another testcase which shows a different event-handling
> (comparing queued and non-queued delegates),
> even after applying this fix, but I don't know whether it is a bit
> too much constructed:
>
> <canvas debug="true" >
> <class name="foo" extends="node" >
> <attribute name="bar" value="123" setter="setBar(bar)" />
> <method name="setBar" args="bar" >
> this.bar = bar;
> if (this["onbar"]) {
> this.onbar.sendEvent(bar);
> }
> </method>
> <method name="provokeError" >
> this.setBar("789");
> </method>
> <method name="provokeError2" >
> this.setBar("xxx");
> </method>
> </class>
> <foo bar="456" >
> <handler name="onbar" args="bar">
> Debug.write("onbar - 1 - begin with %s", bar);
> this.provokeError();
> Debug.write("onbar - 1 - end with %s", bar);
> </handler>
> <handler name="onbar" args="bar">
> Debug.write("onbar - 2 - begin with %s", bar);
> this.provokeError2();
> Debug.write("onbar - 2 - end with %s", bar);
> </handler>
> <!-- later -->
> <handler name="oninit" reference="canvas" >
> Debug.write("-----");
> this.setBar("abc");
> </handler>
> </foo>
> </canvas>
>
> On 11/7/2007 12:23 AM, P T Withington wrote:
>> Change 20071105-ptw-V by ptw at dueling-banjos.local on 2007-11-05
>> 15:10:35 EST
>> in /Users/ptw/OpenLaszlo/ringding-2
>> for http://svn.openlaszlo.org/openlaszlo/trunk
>>
>> Summary: Ensure deferred events do not recurse
>>
>> Bugs Fixed:
>> LPP-4950 'LzDelegate single-execution mechanism does not work for
>> queued delegates'
>>
>> Technical Reviewer: hminksy (pending)
>> QA Reviewer: a.bargull at intensis.de (pending)
>>
>> Tests:
>> Test case from bug no longer shows the event recursing.
>>
>> Files:
>> M WEB-INF/lps/lfc/events/LaszloEvents.lzs
>>
>>
>> Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20071105-ptw-V.tar
>>
More information about the Laszlo-dev
mailing list