[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