[squeak-dev] The Trunk: EToys-dtl.231.mcz

commits at source.squeak.org commits at source.squeak.org
Sun Sep 4 18:28:55 UTC 2016

David T. Lewis uploaded a new version of EToys to project The Trunk:

==================== Summary ====================

Name: EToys-dtl.231
Author: dtl
Time: 4 September 2016, 2:27:44.612203 pm
UUID: f2322433-6226-4dbd-8a88-0ca15e6b917b
Ancestors: EToys-dtl.230

Remove Etoys extension for ImageSegment>>cc:new:current:fake:refStrm: because there are no senders in a Spur image and extension is not required in a V3 image.

=============== Diff against EToys-dtl.230 ===============

Item was removed:
- ----- Method: ImageSegment>>cc:new:current:fake:refStrm: (in category '*Etoys-Squeakland-compact classes') -----
- cc: ind new: inTheSeg current: inTheImage fake: fakeCls refStrm: smartRefStream
- 	"Sort out all the cases and decide what to do.  Every Fake class is uncompacted before having insts converted.  As the segment is installed, instances of reshaped compact classes will have the wrong class.  Trouble cases:
- 	1) Existing class is compact in the segment and not compact here.  Make that compact, (error if that slot is used), load the segment.  If an class was just filed in, it is an existing class as far as we are concerned.
- 	2) A compact class has a different shape.  We created a Fake class.  Load the segment, with instances in the seg having the Wrong Class!!!!  Find the bad instancees, and copy them over to being the real class.
- 	3) An existing class is not compact in the segment, but is in the image.  Just let the new instance be uncompact.  That is OK, and never reaches this code.
- 	A class that is a root in this segment cannot be compact.  That is not allowed."
- 	(inTheImage == nil) & (fakeCls == nil) ifTrue: ["case 1 and empty slot" 
- 		inTheSeg becomeCompactSimplyAt: ind.  ^ true].
- 	(inTheImage == inTheSeg) & (fakeCls == nil) ifTrue: ["everything matches" 
- 		^ true].
- 	inTheImage ifNil: ["reshaped and is an empty slot"
- 		fakeCls becomeCompactSimplyAt: ind.  ^ true].
- 		"comeFullyUpOnReload: will clean up"
- 	(inTheSeg == String and:[inTheImage == ByteString]) ifTrue:[
- 		"ar 4/10/2005: Workaround after renaming String to ByteString"
- 		^true
- 	].
- 	"Is the image class really the class we are expecting?  inTheSeg came in as a DiskProxy, and was mapped if it was renamed!!"
- 	inTheImage == inTheSeg ifFalse: [
- 		self inform: 'The incoming class ', inTheSeg name, ' wants compact class \location ', ind printString, ', but that is occupied by ', inTheImage name, '.  \This file cannot be read into this system.  The author of the file \should make the class uncompact and create the file again.' withCRs.
- 		^ false].
- 	"Instances of fakeCls think they are compact, and thus will say they are instances of the class inTheImage, which is a different shape.  Just allow this to happen.  Collect them and remap them as soon as the segment is installed."
- 	^ true!

More information about the Squeak-dev mailing list