[BUG,FIX]True(Object)>>error:

stéphane ducasse ducasse at iam.unibe.ch
Fri Feb 25 11:39:39 UTC 2005


can you resend that with a cs attached?

Thanks

On 25 févr. 05, at 10:58, hmm at heeg.de wrote:

> Tried to load a package which defined selectors #true and #false.
> Due do the new literal vector interpretation (nil, true and false
> within #() are not transformed into Symbols) this gives an error
> when the class organizer tries to update its categories.
>
> Proposed workaround:
> transform nil, true and false into corresponding symbols
> in Categorizer>>changeFromCategorySpecs:
> ...
> 	1 to: categorySpecs size do:
> 		[:i | | selectors |
> 		catSpec _ categorySpecs at: i.
> 		newCategories at: i put: catSpec first asSymbol.
> 		selectors := catSpec allButFirst collect: [:each | each isSymbol
> 							ifTrue: [each]
> 							ifFalse: [each printString asSymbol]].
> 		selectors asSortedCollection do:
> ...
>
> Cheers,
> Hans-Martin
> ----
> 25 February 2005 10:48:27 am
>
> VM: unix - a SmalltalkImage
> Image: Squeak3.7 [latest update: #5989]
>
> SecurityManager state:
> Restricted: false
> FileAccess: true
> SocketAccess: true
> Working Dir /home/hmm/squeak
> Trusted Dir /home/hmm/squeak/secure
> Untrusted Dir /home/hmm/squeak/untrusted
>
> True(Object)>>error:
> 	Receiver: true
> 	Arguments and temporary variables:
> 		aString: 	'Instances of True are not indexable'
> 	Receiver's instance variables:
> true
>
> True(Object)>>errorNotIndexable
> 	Receiver: true
> 	Arguments and temporary variables:
>
> 	Receiver's instance variables:
> true
>
> True(Object)>>size
> 	Receiver: true
> 	Arguments and temporary variables:
>
> 	Receiver's instance variables:
> true
>
> Symbol(String)>>compare:with:collated:
> 	Receiver: #R
> 	Arguments and temporary variables:
> 		string1: 	#R
> 		string2: 	true
> 		order: 	a ByteArray(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
> 20 21 22 2...etc...
> 		len1: 	1
> 		len2: 	nil
> 		c1: 	nil
> 		c2: 	nil
> 		i: 	nil
> 		iLimiT: 	nil
> 	Receiver's instance variables:
> #R
>
>
> --- The full stack ---
> True(Object)>>error:
> True(Object)>>errorNotIndexable
> True(Object)>>size
> Symbol(String)>>compare:with:collated:
>  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> Symbol(String)>><=
> SortedCollection>>should:precede:
> SortedCollection>>sort:to:
> SortedCollection>>reSort
> SortedCollection>>addAll:
> SortedCollection class(OrderedCollection class)>>newFrom:
> Array(Object)>>as:
> Array(Collection)>>asSortedCollection
> ClassOrganizer(Categorizer)>>changeFromCategorySpecs:
> [] in ClassOrganizer>>changeFromCategorySpecs: {[super
> changeFromCategorySpecs: categorySpecs]}
> [] in SystemChangeNotifier>>doSilently: {[result := aBlock value]}
> BlockContext>>ensure:
> SystemChangeNotifier>>doSilently:
> ClassOrganizer>>changeFromCategorySpecs:
> ClassOrganizer(Categorizer)>>changeFromString:
> ClassOrganizer(Categorizer)>>scanFrom:
> [] in StandardFileStream(PositionableStream)>>fileInAnnouncing: {[val  
> :=
> (self peekFor: $!)     ifTrue: [(Compiler evaluate: self nextChunk
> l...]}
> BlockContext>>on:do:
> [] in StandardFileStream(PositionableStream)>>fileInAnnouncing: {[:bar  
> |
>  [self atEnd]   whileFalse: [bar value: self position.    self
> skipS...]}
> ProgressInitiationException>>defaultAction
> UndefinedObject>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> ProgressInitiationException(Exception)>>signal
> ProgressInitiationException>>display:at:from:to:during:
> ProgressInitiationException class>>display:at:from:to:during:
> String>>displayProgressAt:from:to:during:
> StandardFileStream(PositionableStream)>>fileInAnnouncing:
> [] in
> SMDefaultInstaller(SMSimpleInstaller)>>fileIntoChangeSetNamed: 
> fromStream
> : {[global newChanges: changeSet.  stream fileInAnnouncing: 'Loading '  
> ,
> newNam...]}
> BlockContext>>ensure:
> SMDefaultInstaller(SMSimpleInstaller)>>fileIntoChangeSetNamed: 
> fromStream
> :
> SMDefaultInstaller>>fileIn
> SMDefaultInstaller>>install
> [] in SMLoader>>installPackageRelease: {[(SMInstaller  
> forPackageRelease:
> aRelease) install.  myRelease = self instal...]}
> BlockContext>>ensure:
> CursorWithMask(Cursor)>>showWhile:
> [] in SMLoader>>installPackageRelease: {[Cursor wait   showWhile:
> [(SMInstaller forPackageRelease: aRelease) install...]}
> BlockContext>>on:do:
> SMLoader>>installPackageRelease:
> SMLoader>>installPackageRelease
> SMLoader>>perform:orSendTo:
> [] in MenuItemMorph>>invokeWithEvent: {[(selArgCount := selector
> numArgs) = 0   ifTrue: [target perform: selector] ...]}
> BlockContext>>ensure:
> CursorWithMask(Cursor)>>showWhile:
> MenuItemMorph>>invokeWithEvent:
> MenuItemMorph>>mouseUp:
> MenuItemMorph>>handleMouseUp:
> MouseButtonEvent>>sentTo:
> MenuItemMorph(Morph)>>handleEvent:
> MorphicEventDispatcher>>dispatchDefault:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> MenuItemMorph(Morph)>>processEvent:using:
> MorphicEventDispatcher>>dispatchDefault:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> MenuMorph(Morph)>>processEvent:using:
> MenuMorph(Morph)>>processEvent:
> MenuMorph>>handleFocusEvent:
> -- and more not shown --
>




More information about the Squeak-dev mailing list