[squeak-dev] [Bug][5.2beta][Test] menu 'method source with it' causes error in DecompilerConstructor object

H. Hirzel hannes.hirzel at gmail.com
Sat Sep 8 07:37:47 UTC 2018


Thanks for checking, Chris.

Yes, after using a new stock trunk image the error did no longer occur.

Sorry for the false alarm.

--Hannes

On 9/7/18, Chris Muller <asqueaker at gmail.com> wrote:
> Hi Hannes,
>
> It works for me.  It looks like you're not dealing with a stock trunk
> image...
> ________
> CompiledMethod>>getSourceFor:in:
>         Receiver: (Player217>>nil "a CompiledMethod(1568738)")
>         Arguments and temporary variables:
>                 selector:       nil
>                 class:  Player217
>                 trailer:        a CompiledMethodTrailer
>                 source:         nil
>                 namesString:    nil
>                 code:   nil
>         Receiver's instance variables:
> (Player217>>nil "a CompiledMethod(1568738)")
> _______
>
>  - Chris
>
> On Fri, Sep 7, 2018 at 1:44 AM H. Hirzel <hannes.hirzel at gmail.com> wrote:
>>
>> Hello
>>
>> A manual test case which fails:
>>
>> 1) I open a workspace
>> 2) I add and select the text
>>       previous project
>> 3) I choose the menu 'method source with it'
>>
>> Result is that I get an error in
>>
>> DecompilerConstructor>>
>> codeMethod: selector block: block tempVars: vars primitive: primitive
>> class: class
>>
>>
>> Stack trace below
>>
>> --Hannes
>>
>> --------------------------------------------------------------------------------------------------------------------------------------
>> 7 September 2018 8:40:44.650159 am
>>
>> VM: unix - Smalltalk
>> Image: Squeak5.2alpha [latest update: #18185]
>>
>> SecurityManager state:
>> Restricted: false
>> FileAccess: true
>> SocketAccess: true
>> Working Dir
>> /home/user24/Documents/Squeak5.2/Squeak5.2alpha-18185-32bit-All-in-One.app/Contents/Resources
>> Trusted Dir
>> /home/user24/Documents/Squeak5.2/Squeak5.2alpha-18185-32bit-All-in-One.app/Contents/Resources/secure
>> Untrusted Dir
>> /home/user24/Documents/Squeak5.2/Squeak5.2alpha-18185-32bit-All-in-One.app/Contents/Resources/My
>> Squeak
>>
>> UndefinedObject(Object)>>doesNotUnderstand: #precedence
>>         Receiver: nil
>>         Arguments and temporary variables:
>>                 aMessage:       precedence
>>                 exception:      MessageNotUnderstood:
>> UndefinedObject>>precedence
>>                 resumeValue:    nil
>>         Receiver's instance variables:
>> nil
>>
>> DecompilerConstructor>>codeMethod:block:tempVars:primitive:class:
>>         Receiver: {a DecompilerConstructor}
>>         Arguments and temporary variables:
>>                 selector:       nil
>>                 block:  {[[] repeat.
>>         self getValueAtCursor doMenuItem: 'resist being picked
>> up'...etc...
>>                 vars:   #()
>>                 primitive:      0
>>                 class:  Player217
>>                 blockNode:      nil
>>                 selectorNode:   {<key==nil>}
>>                 visibleTemps:   an OrderedCollection()
>>                 invisibleTemps:         an OrderedCollection()
>>                 arguments:      an OrderedCollection()
>>                 temporaries:    an OrderedCollection()
>>                 properties:     an AdditionalMethodState (1209644)
>>                 onceCache:      nil
>>         Receiver's instance variables:
>>                 comment:        nil
>>                 pc:     nil
>>                 method:         (Player217>>nil "a
>> CompiledMethod(1568738)")
>>                 instVars:       #('dependents' 'costume' 'costumes')
>>                 nArgs:  0
>>                 literalValues:  {#timesRepeat: . #getCount . #doMenuItem:
>> .
>> #getValueAtCursor . ...etc...
>>                 tempVars:       #()
>>
>> Decompiler>>decompile:in:method:using:
>>         Receiver: a Decompiler
>>         Arguments and temporary variables:
>>                 aSelector:      nil
>>                 aClass:         Player217
>>                 aMethod:        (Player217>>nil "a
>> CompiledMethod(1568738)")
>>                 aConstructor:   {a DecompilerConstructor}
>>                 block:  {[[] repeat.
>>         self getValueAtCursor doMenuItem: 'resist being picked
>> up'...etc...
>>                 node:   nil
>>         Receiver's instance variables:
>>                 sender:         (Player217>>nil "a
>> CompiledMethod(1568738)")
>>                 pc:     63
>>                 constructor:    {a DecompilerConstructor}
>>                 method:         (Player217>>nil "a
>> CompiledMethod(1568738)")
>>                 instVars:       #(nil nil nil)
>>                 tempVars:       #()
>>                 constTable:     {{self} . {true} . {false} . {nil} . {-1}
>> . {0} . {1} . {2}}
>>                 stack:  an OrderedCollection()
>>                 statements:     an OrderedCollection()
>>                 lastPc:         62
>>                 exit:   63
>>                 caseExits:      an OrderedCollection()
>>                 lastJumpPc:     62
>>                 lastReturnPc:   -1
>>                 limit:  63
>>                 hasValue:       false
>>                 blockStackBase:         nil
>>                 numLocalTemps:  0
>>                 blockStartsToTempVars:  nil
>>                 tempVarCount:   0
>>                 lastJumpIfPcStack:      an OrderedCollection()
>>                 tempReadCounts:         a Dictionary()
>>
>> Decompiler>>decompile:in:method:
>>         Receiver: a Decompiler
>>         Arguments and temporary variables:
>>                 aSelector:      nil
>>                 aClass:         Player217
>>                 aMethod:        (Player217>>nil "a
>> CompiledMethod(1568738)")
>>         Receiver's instance variables:
>>                 sender:         (Player217>>nil "a
>> CompiledMethod(1568738)")
>>                 pc:     63
>>                 constructor:    {a DecompilerConstructor}
>>                 method:         (Player217>>nil "a
>> CompiledMethod(1568738)")
>>                 instVars:       #(nil nil nil)
>>                 tempVars:       #()
>>                 constTable:     {{self} . {true} . {false} . {nil} . {-1}
>> . {0} . {1} . {2}}
>>                 stack:  an OrderedCollection()
>>                 statements:     an OrderedCollection()
>>                 lastPc:         62
>>                 exit:   63
>>                 caseExits:      an OrderedCollection()
>>                 lastJumpPc:     62
>>                 lastReturnPc:   -1
>>                 limit:  63
>>                 hasValue:       false
>>                 blockStackBase:         nil
>>                 numLocalTemps:  0
>>                 blockStartsToTempVars:  nil
>>                 tempVarCount:   0
>>                 lastJumpIfPcStack:      an OrderedCollection()
>>                 tempReadCounts:         a Dictionary()
>>
>> CompiledMethod>>getSourceFor:in:
>>         Receiver: (Player217>>nil "a CompiledMethod(1568738)")
>>         Arguments and temporary variables:
>>                 selector:       nil
>>                 class:  Player217
>>                 trailer:        a CompiledMethodTrailer
>>                 source:         nil
>>                 namesString:    nil
>>                 code:   nil
>>         Receiver's instance variables:
>> (Player217>>nil "a CompiledMethod(1568738)")
>>
>> CompiledMethod(CompiledCode)>>getSource
>>         Receiver: (Player217>>nil "a CompiledMethod(1568738)")
>>         Arguments and temporary variables:
>>
>>         Receiver's instance variables:
>> (Player217>>nil "a CompiledMethod(1568738)")
>>
>> [] in [] in [] in SystemNavigation>>allMethodsWithSourceString:matchCase:
>>         Receiver: a SystemNavigation
>>         Arguments and temporary variables:
>> <<error during printing>
>>         Receiver's instance variables:
>>                 browserClass:   nil
>>                 hierarchyBrowserClass:  nil
>>                 environment:    Smalltalk
>>
>> [] in [] in SystemNavigation>>allSelectorsAndMethodsDo:
>>         Receiver: a SystemNavigation
>>         Arguments and temporary variables:
>>                 aBlock:         #script1
>>                 behavior:       (Player217>>nil "a
>> CompiledMethod(1568738)")
>>                 selector:       Player217
>>                 method:         [closure] in [] in [] in
>> SystemNavigation>>allMethodsWithSourceString:matchCase:...etc...
>>         Receiver's instance variables:
>>                 browserClass:   nil
>>                 hierarchyBrowserClass:  nil
>>                 environment:    Smalltalk
>>
>> MethodDictionary>>keysAndValuesDo:
>>         Receiver: a MethodDictionary(#script1->(Player217>>nil "a
>> CompiledMethod(1568738)") )
>>         Arguments and temporary variables:
>>                 aBlock:         [closure] in [] in
>> SystemNavigation>>allSelectorsAndMethodsDo:
>>                 key:    #script1
>>                 i:      8
>>                 iLimiT:         32
>>         Receiver's instance variables:
>>                 tally:  1
>>                 array:  {nil . nil . nil . nil . nil . nil . nil .
>> (Player217>>nil
>> "a CompiledMethod...etc...
>>
>> Player217 class(Behavior)>>selectorsAndMethodsDo:
>>         Receiver: Player217
>>         Arguments and temporary variables:
>>                 selectorAndMethodBlock:         [closure] in [] in
>> SystemNavigation>>allSelectorsAndMethodsDo:...etc...
>>         Receiver's instance variables:
>>                 superclass:     Player
>>                 methodDict:     a
>> MethodDictionary(#script1->(Player217>>nil "a
>> CompiledMethod(1568...etc...
>>                 format:         65539
>>                 instanceVariables:      nil
>>                 organization:   ('scripts' script1)
>>
>>                 subclasses:     nil
>>                 name:   #Player217
>>                 classPool:      nil
>>                 sharedPools:    nil
>>                 environment:    Smalltalk
>>                 category:       #UserObjects
>>                 scripts:        an IdentityDictionary(#script1->A
>> UniclassScript -
>> selector: #script1 ...etc...
>>                 slotInfo:       an IdentityDictionary()
>>                 variableDocks:  <<error during printing>>
>>
>> [] in SystemNavigation>>allSelectorsAndMethodsDo:
>>         Receiver: a SystemNavigation
>>         Arguments and temporary variables:
>>                 aBlock:         Player217
>>                 behavior:       [closure] in [] in [] in
>> SystemNavigation>>allMethodsWithSourceString:matchCase:...etc...
>>         Receiver's instance variables:
>>                 browserClass:   nil
>>                 hierarchyBrowserClass:  nil
>>                 environment:    Smalltalk
>>
>> [] in SystemNavigation>>allBehaviorsDo:
>>         Receiver: a SystemNavigation
>>         Arguments and temporary variables:
>>                 aBlock:         Player217
>>                 class:  [closure] in
>> SystemNavigation>>allSelectorsAndMethodsDo:
>>         Receiver's instance variables:
>>                 browserClass:   nil
>>                 hierarchyBrowserClass:  nil
>>                 environment:    Smalltalk
>>
>> [] in Environment>>allClassesAndTraitsDo:
>>         Receiver: Smalltalk
>>         Arguments and temporary variables:
>>                 aBlock:         #Player217
>>                 key:    Player217
>>                 value:  [closure] in SystemNavigation>>allBehaviorsDo:
>>         Receiver's instance variables:
>>                 info:   SmalltalkInfo
>>                 declarations:   an IdentityDictionary(size 2732)
>>                 bindings:       an IdentityDictionary(size 2732)
>>                 undeclared:     a WeakIdentityDictionary()
>>                 policies:       {a BindingPolicy . a BindingPolicy}
>>                 observers:      an IdentitySet(EnvironmentForUniClass)
>>
>> [] in IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>         Receiver: an IdentityDictionary(size 2732)
>>         Arguments and temporary variables:
>>                 aBlock:         #Player217=>Player217
>>                 assoc:  [closure] in Environment>>allClassesAndTraitsDo:
>>         Receiver's instance variables:
>>                 tally:  2732
>>                 array:  {#ConnectionClosed=>ConnectionClosed .
>> #UTF8TextConverterTest=>UTF8TextConverterTest...etc...
>>
>> IdentityDictionary(Dictionary)>>associationsDo:
>>         Receiver: an IdentityDictionary(size 2732)
>>         Arguments and temporary variables:
>>                 aBlock:         [closure] in
>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>                 element:        #Player217=>Player217
>>                 index:  2628
>>                 indexLimiT:     3727
>>         Receiver's instance variables:
>>                 tally:  2732
>>                 array:  {#ConnectionClosed=>ConnectionClosed .
>> #UTF8TextConverterTest=>UTF8TextConverterTest...etc...
>>
>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
>>         Receiver: an IdentityDictionary(size 2732)
>>         Arguments and temporary variables:
>>                 aBlock:         [closure] in
>> Environment>>allClassesAndTraitsDo:
>>         Receiver's instance variables:
>>                 tally:  2732
>>                 array:  {#ConnectionClosed=>ConnectionClosed .
>> #UTF8TextConverterTest=>UTF8TextConverterTest...etc...
>>
>> Environment>>allClassesAndTraitsDo:
>>         Receiver: Smalltalk
>>         Arguments and temporary variables:
>>                 aBlock:         [closure] in
>> SystemNavigation>>allBehaviorsDo:
>>         Receiver's instance variables:
>>                 info:   SmalltalkInfo
>>                 declarations:   an IdentityDictionary(size 2732)
>>                 bindings:       an IdentityDictionary(size 2732)
>>                 undeclared:     a WeakIdentityDictionary()
>>                 policies:       {a BindingPolicy . a BindingPolicy}
>>                 observers:      an IdentitySet(EnvironmentForUniClass)
>>
>> SystemNavigation>>allBehaviorsDo:
>>         Receiver: a SystemNavigation
>>         Arguments and temporary variables:
>>                 aBlock:         [closure] in
>> SystemNavigation>>allSelectorsAndMethodsDo:
>>         Receiver's instance variables:
>>                 browserClass:   nil
>>                 hierarchyBrowserClass:  nil
>>                 environment:    Smalltalk
>>
>> SystemNavigation>>allSelectorsAndMethodsDo:
>>         Receiver: a SystemNavigation
>>         Arguments and temporary variables:
>>                 aBlock:         [closure] in [] in [] in
>> SystemNavigation>>allMethodsWithSourceString:matchCase:...etc...
>>         Receiver's instance variables:
>>                 browserClass:   nil
>>                 hierarchyBrowserClass:  nil
>>                 environment:    Smalltalk
>>
>>
>> --- The full stack ---
>> UndefinedObject(Object)>>doesNotUnderstand: #precedence
>> DecompilerConstructor>>codeMethod:block:tempVars:primitive:class:
>> Decompiler>>decompile:in:method:using:
>> Decompiler>>decompile:in:method:
>> CompiledMethod>>getSourceFor:in:
>> CompiledMethod(CompiledCode)>>getSource
>> [] in [] in [] in SystemNavigation>>allMethodsWithSourceString:matchCase:
>> [] in [] in SystemNavigation>>allSelectorsAndMethodsDo:
>> MethodDictionary>>keysAndValuesDo:
>> Player217 class(Behavior)>>selectorsAndMethodsDo:
>> [] in SystemNavigation>>allSelectorsAndMethodsDo:
>> [] in SystemNavigation>>allBehaviorsDo:
>> [] in Environment>>allClassesAndTraitsDo:
>> [] in IdentityDictionary(Dictionary)>>keysAndValuesDo:
>> IdentityDictionary(Dictionary)>>associationsDo:
>> IdentityDictionary(Dictionary)>>keysAndValuesDo:
>> Environment>>allClassesAndTraitsDo:
>> SystemNavigation>>allBehaviorsDo:
>> SystemNavigation>>allSelectorsAndMethodsDo:
>>  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>> [] in [] in SystemNavigation>>allMethodsWithSourceString:matchCase:
>> [] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
>> BlockClosure>>on:do:
>> [] in MorphicUIManager>>displayProgress:at:from:to:during:
>> BlockClosure>>ensure:
>> MorphicUIManager>>displayProgress:at:from:to:during:
>> ProgressInitiationException>>defaultResumeValue
>> ProgressInitiationException(Exception)>>resume
>> ProgressInitiationException>>defaultAction
>> UndefinedObject>>handleSignal:
>> Context>>handleSignal:
>> ProgressInitiationException(Exception)>>signal
>> ProgressInitiationException>>display:at:from:to:during:
>> ProgressInitiationException class>>display:at:from:to:during:
>> ByteString(String)>>displayProgressAt:from:to:during:
>> ByteString(String)>>displayProgressFrom:to:during:
>> [] in SystemNavigation>>allMethodsWithSourceString:matchCase:
>> BlockClosure>>on:do:
>> CurrentReadOnlySourceFiles class>>cacheDuring:
>> SystemNavigation>>allMethodsWithSourceString:matchCase:
>> SystemNavigation>>browseMethodsWithSourceString:
>> SmalltalkEditor(TextEditor)>>methodSourceContainingIt
>> [] in PluggableTextMorphPlus(PluggableTextMorph)>>methodSourceContainingIt
>> TextMorphForEditView(TextMorph)>>handleEdit:
>> PluggableTextMorphPlus(PluggableTextMorph)>>handleEdit:
>> PluggableTextMorphPlus(PluggableTextMorph)>>methodSourceContainingIt
>> Workspace(StringHolder)>>perform:orSendTo:
>> [] in MenuItemMorph>>invokeWithEvent:
>> BlockClosure>>ensure:
>> CursorWithMask(Cursor)>>showWhile:
>> MenuItemMorph>>invokeWithEvent:
>> MenuItemMorph>>mouseUp:
>> MenuItemMorph>>handleMouseUp:
>> MouseButtonEvent>>sentTo:
>> MenuItemMorph(Morph)>>handleEvent:
>> MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:
>> MorphicEventDispatcher>>dispatchDefault:with:
>> MorphicEventDispatcher>>dispatchEvent:with:
>> MenuItemMorph(Morph)>>processEvent:using:
>> [] in MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
>> Array(SequenceableCollection)>>do:
>> MenuMorph(Morph)>>submorphsDo:
>> -- and more not shown --
>>
>
>


More information about the Squeak-dev mailing list