[General] I sqvash dem like a gnat
Daniel Ingalls
Dan.Ingalls at Sun.com
Wed Apr 8 06:04:12 CEST 2009
Hi guys -
I just committed a couple of changes that fix problems with stepping
scripts...
1. It turns out that if you had a simple stepping morph, like
spinning star, and you picked it up and then put it down, its drop-
shadow remained in the scheduler stepping invisibly but not without
consuming cycles. One more for every such action. It could get
burdensome after a while.
2. Also, if you dragged a stepping thing into another world, it kept
ticking in the old world, and if you revisited the old world, then
back to the new, it got twice the amount of steps desired (it took two
bugs to create this effect). This too could become burdensome because
removal of the morph only decommissioned its stepping behavior from
the world it was in, not from the other one.
Updating should fix this for you, but if you have some saved worlds
with spurious stepping scripts, you can now evaluate
<world>validateScheduler(), and it will remove any stepping action
whose actor is a morph that is not in that world. Note that testing
m.world() is not good enough here, because removal of a morph does not
necessarily zap the owner pointer; it is necessary to further test
that the morphs up the chain are each still actually pointed to by
their owners.
Enjoy
- Dan
More information about the lively-kernel
mailing list