On Sun, Aug 25, 2013 at 09:12:38PM +0200, Holger Hans Peter Freyther wrote:
> On Sun, Aug 25, 2013 at 08:42:10PM +0200, Holger Hans Peter Freyther wrote:
> > On Wed, Aug 21, 2013 at 03:00:04PM +0200, Gwenaël Casaccio wrote:
> > > Hi,
> > > 
> > > I've added a new command 'J' that print the context state using
> > > the debug informations.
> 
> and I broke it. Can you take another look? I think numArgs/numTemproaries
> and method temporaries/arguments can disagree. :}
> 
>  st> [3 halt. 'String' select: [:each | false] ] value


> MethodContext(ContextPart)>>printTemporariesOn:spaces: (ContextPart.st:120)

I added the below code and it triggers

variables size => 0
self method 
..
    number of arguments: 1
    number of temporaries: 1
    number of literals: 0
...
self numTemps => 1

:}

diff --git a/kernel/ContextPart.st b/kernel/ContextPart.st
index d0d6c2f..b74699e 100644
--- a/kernel/ContextPart.st
+++ b/kernel/ContextPart.st
@@ -126,6 +126,8 @@ methods that can be used in inspection or debugging.'>
         self printVariableKind: 'temps' on: aStream spaces: 2.
 
         variables := self method temporaries.
+       variables size = self numTemps
+               ifFalse: [variables inspect. self method inspect. self numTemps 
printNl].
         1 to: self numTemps do: [ :i |
             self printVariable: variables at: i do: [ self at: self numArgs + 
i ] on: aStream 
     ]


_______________________________________________
help-smalltalk mailing list
help-smalltalk@gnu.org
https://lists.gnu.org/mailman/listinfo/help-smalltalk

Reply via email to