[BUG]ClassBuilder class>>cleanupClassHierarchyFor:

RossBoylan at stanfordalumni.org RossBoylan at stanfordalumni.org
Wed May 8 04:20:55 UTC 2002


While filing in the latest 3.2gamma changes, specifically 4855, I got
the error
Obsolete subclasses of nil cannot be stored.

I've noticed various discussion and enhancements to this code, as well
as a note from
Dan Ingalls on  Thu, 2 May 2002 17:24:21 -0700 ("first aid...").  But
it's not clear to me
this is the same problem; it doesn't happen during save and quite, but
during the filein.

Can anyone suggest a reasonable way to proceed?  For now, I'm just going
to back out
to where I was before.

Thanks.
7 May 2002 9:10:43 pm

P.S. This trace is after I executed one send in the debugger, thinking
it meant "send bug report." I think that just moved past the halt.

VM: unix - Squeak3.2gamma of 22 January 2002 [latest update: #4653]
Image: Squeak3.2gamma [latest update: #4852]

ClassBuilder class>>cleanupClassHierarchyFor:
	Receiver: ClassBuilder
	Arguments and temporary variables: 
		aClassDescription: 	AnObsoleteTaskTable
		myName: 	'AnObsoleteTaskTable'
		mySuperclass: 	nil
		each: 	#SquishedNameMorph
		obs: 	nil
	Receiver's instance variables: 
		superclass: 	Object
		methodDict: 	a MethodDictionary(#class:instanceVariableNames:->a
CompiledMethod ...etc...
		format: 	142
		instanceVariables: 	#('environ' 'classMap' 'instVarMap' 'progress'
'maxClassInde...etc...
		organization: 	('initialize' doneCompiling: initialize)
('class definition' clas...etc...
		subclasses: 	nil
		name: 	#ClassBuilder
		classPool: 	a Dictionary(#QuietMode->false )
		sharedPools: 	nil
		environment: 	nil
		category: 	nil

[] in ClassBuilder class>>cleanupClassHierarchy:
	Arguments and temporary variables: 
		informer: 	[] in MVCMenuMorph>>informUserAt:during:
		classes: 	#(ObjectTracer class ObjectViewer class PseudoContext class
ProtoObjec...etc...
		index: 	1605
		meta: 	AnObsoleteTaskTable class
		each: 	AnObsoleteTaskTable

Array(SequenceableCollection)>>do:
	Receiver: #(AnObsoleteTaskTable)
	Arguments and temporary variables: 
		aBlock: 	[] in ClassBuilder class>>cleanupClassHierarchy:
		index: 	1
		indexLimiT: 	1
	Receiver's instance variables: 
#(AnObsoleteTaskTable)

[] in ClassBuilder class>>cleanupClassHierarchy:
	Arguments and temporary variables: 
		informer: 	[] in MVCMenuMorph>>informUserAt:during:
		classes: 	#(ObjectTracer class ObjectViewer class PseudoContext class
ProtoObjec...etc...
		index: 	1605
		meta: 	AnObsoleteTaskTable class
		each: 	AnObsoleteTaskTable

--- The rest of the stack ---
Array(SequenceableCollection)>>keysAndValuesDo:
ClassBuilder class>>cleanupClassHierarchy:
ClassBuilder class>>cleanupAndCheckClassHierarchy:
[] in UndefinedObject>>DoIt
MVCMenuMorph>>informUserAt:during:
Utilities class>>informUserDuring:
UndefinedObject>>DoIt
Compiler>>evaluate:in:to:notifying:ifFail:
Compiler class>>evaluate:for:notifying:logged:
Compiler class>>evaluate:for:logged:
Compiler class>>evaluate:logged:
[] in RWBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
BlockContext>>on:do:
[] in RWBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
ProgressInitiationException>>defaultAction
ProgressInitiationException(Exception)>>signal
ProgressInitiationException>>display:at:from:to:during:
ProgressInitiationException class>>display:at:from:to:during:
String>>displayProgressAt:from:to:during:
RWBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
[] in ChangeSorter class>>newChangesFromStream:named:
BlockContext>>ensure:
ChangeSorter class>>newChangesFromStream:named:
[] in Utilities
class>>readServer:special:updatesThrough:saveLocally:updateImage:
BlockContext>>ensure:
CursorWithMask(Cursor)>>showWhile:
Utilities
class>>readServer:special:updatesThrough:saveLocally:updateImage:
Utilities class>>readServerUpdatesThrough:saveLocally:updateImage:
Utilities class>>readServerUpdatesSaveLocally:updateImage:
Utilities class>>updateFromServer
[] in SimpleButtonMorph>>doButtonAction
BlockContext>>ensure:
CursorWithMask(Cursor)>>showWhile:
SimpleButtonMorph>>doButtonAction
SimpleButtonMorph>>mouseUp:
SimpleButtonMorph(Morph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
SimpleButtonMorph(Morph)>>handleEvent:
SimpleButtonMorph(Morph)>>handleFocusEvent:
[] in HandMorph>>sendFocusEvent:to:clear:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess
[] in BlockContext>>newProcess



More information about the Squeak-dev mailing list