I am playing with Iliad and trying to make a Google Maps API. I'm having
overriding some private methods on my part, I think it can be reproduced
as well in this hypothetical situation:
1) a stateful widget has setters that use #markDirty after doing their
2) one of the setters is called from within the answer handler of an
3) later, the same widget is shown again in the ILSequence.
After step 2, #beDirty is called on a decorated widget. After step 3,
the widget is rendered twice. This is usually unnoticeable.
Now, however if you add:
The problem (I won't call it a bug) can happen without sequences as well,
of course, but sequences are the only case I can think of when you'll find
On 08/03/2010 10:31 AM, Nicolas Petton wrote:
>> If the patch is correct, could #markDirty be simplified to do just #beDirty
>> plus the loop on the dependent widgets?
> I have to think about about that. I remember working on the #markDirty
> and adding this owner stuff, but I can't remember why... I can't see a
> scenario where this is the right behaviour.
Well, the owner stuff is what makes this bug very hard to trigger. :)
Without it all subwidgets would be built twice.
So maybe the above patch is incorrect _but_ the patch plus simplifying
#markDirty is not that bad.