in reply to Re^4: Quickly detecting variable writes
in thread Quickly detecting variable writes
$x is some attribute of some node. Associated with that attribute is a (possibly empty) list, @kabluther of callbacks to other nodes associated with this node by this attribute.Sorry, you misunderstood me. @kabluther has nothing whatsoever to do with $x or callbacks. It's just an example of some sort of processing that might occur. The example could also be
oronTime { our $pos : Attr('position'); our $active; if ($active) { $pos->[0]++; } }
The "callbacks" I was referring to are behind the scenes. Here's an example of the previous code sample, without using the new "simplified" API:onTime { our $x : Attr('something'); our @fixups; foreach (@fixups) { $x += $_; } @fixups = (); }
That's how it would be written with the current API, unless they wanted to suppress the possibly unneeded callbacks, in which case they would spell it:onTime { my $attr = $NODE->getAttr("something"); my $val = $attr->getValue(); foreach (@fixups) { $val += $_; } @fixups = (); $attr->setValue($val); $attr->doCallbacks(); }
onTime { my $attr = $NODE->getAttr("something"); my $val = $attr->getValue(); my $was_updated = 0; foreach (@fixups) { $val += $_; $was_updated = 1; } @fixups = (); if ($was_updated) { $attr->setValue($val); $attr->doCallbacks(); } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^6: Quickly detecting variable writes
by BrowserUk (Patriarch) on Jan 08, 2007 at 07:11 UTC |