thanks eliot 

this is strange I thought that we fixed that already .... I have to check.

On Dec 18, 2009, at 6:28 PM, Eliot Miranda wrote:

> with closures the block in allSubInstances will be a different object on each 
> evaluation.  Pre closures this would have been a single BlockContext used for 
> each evaluation of the block (and hence non-reentrant).  So you need to 
> modify, e.g. by implementing allInstancesDo: in MethodContext class:
> 
> 'From Croquet1.0beta of 11 April 2006 [latest update: #1] on 18 December 2009 
> at 9:26:47 am'!
> 
> !MethodContext class methodsFor: 'hacks' stamp: 'ar 9/17/2008 16:24'!
> allInstancesDo: aBlock
>       "Only count until thisContext"
>       | inst next |
>       inst := self someInstance.
>       [inst == thisContext] whileFalse:[
>               next := inst nextInstance.
>               aBlock value: inst.
>               inst := next]! !
> 
> find it attached
> 
> On Fri, Dec 18, 2009 at 7:47 AM, Stan Shepherd <[email protected]> 
> wrote:
> 
> Pharo image: Pharo | Pharo-core
> PharoCore1.0rc1 Latest update: #10502
> VM: unix - i686 - linux-gnu - Pharo0.1 of 16 May 2008 [latest update:
> #10074]
> 
> Steps to reproduce:
> 1.Object allSubInstances
> 
> It appears to be repeatedly adding its current context.
> 
> ...Stan
> 
> OrderedCollection>>addLast:
>        Receiver: an OrderedCollection(an Object an Object an Object an
> Object an Object an Object an Object...etc...
>        Arguments and temporary variables:
>                newObject:      [] in Object
> class(Behavior)>>allSubInstances
>        Receiver's instance variables:
>                array:  an Array(an Object an Object an Object an Object an
> Object an Object an ...etc...
>                firstIndex:     1
>                lastIndex:      1173805
> 
> OrderedCollection>>add:
>        Receiver: an OrderedCollection(an Object an Object an Object an
> Object an Object an Object an Object...etc...
>        Arguments and temporary variables:
>                newObject:      [] in Object
> class(Behavior)>>allSubInstances
>        Receiver's instance variables:
>                array:  an Array(an Object an Object an Object an Object an
> Object an Object an ...etc...
>                firstIndex:     1
>                lastIndex:      1173805
> 
> [] in Object class(Behavior)>>allSubInstances
>        Receiver: Object
>        Arguments and temporary variables:
>                aCollection:    [] in Object
> class(Behavior)>>allSubInstances
>                x:      an OrderedCollection(an Object an Object an Object
> an Object an Object an Ob...etc...
>        Receiver's instance variables:
>                superclass:     ProtoObject
>                methodDict:     a MethodDictionary(size 408)
>                format:         2
>                instanceVariables:      nil
>                organization:   ('*DynamicBindings' binding binding:
> hasBinding removeBinding)
> ('...etc...
>                subclasses:     {BalloonState. StandardFileMenuResult.
> UndefinedObject. Boolean. Fi...etc...
>                name:   #Object
>                classPool:      a Dictionary(#DependentsFields->a
> WeakIdentityKeyDictionary(MCWorkin...etc...
>                sharedPools:    nil
>                environment:    Smalltalk
>                category:       #'Kernel-Objects'
>                traitComposition:       {}
>                localSelectors:         nil
> ...
> --
> View this message in context: 
> http://n2.nabble.com/Issue-1633-Object-allSubInstances-appears-to-loop-forever-tp4187269p4187269.html
> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
> 
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
> 
> <MethodContext 
> class-allInstancesDo.st>_______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to