[BUG,FIX]True(Object)>>error:
hmm at heeg.de
hmm at heeg.de
Fri Feb 25 09:58:27 UTC 2005
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
|