[squeak-dev] Bug Report: Squeak 6.0 loading Squeak 4.3 RectangleMorph .morph

David T. Lewis lewis at mail.msen.com
Mon Apr 3 21:07:09 UTC 2023


On Mon, Apr 03, 2023 at 10:01:10AM -0700, tim Rowledge wrote:
> 
>> On 2023-04-03, at 12:31 AM, St??phane Rollandin <lecteur at zogotounga.net> wrote:
>> 
>>> Yeah - if I simply stick a rehash of 'ss' and 'structures' in that method it loads ok. I kinda doubt that is a truly principled solution though.
>> 
>> This should be fixed in trunk - that's an issue I signaled a long time ago. See point 8 in this post:
>> 
>> http://lists.squeakfoundation.org/pipermail/squeak-dev/2022-August/221980.html
>> 
>> Stef
>> 
> 
> Unfortunately the version of SmartRefStream>>#next in the 22517 update is still the original tk version from 2000
>

I don't know if this helps (and I did not test it) but I'm
attaching a copy of the method from Stef's muO image.

Dave


-------------- next part --------------
���'From Squeak6.0 of 15 August 2022 [latest update: #22111] on 3 April 2023 at 1:55:23 pm'!

!SmartRefStream methodsFor: '*MuO-overrides' stamp: 'spfa 7/24/2022 10:45'!
next
	"Really write three objects: (version, class structure, object). But only when called from the outside.  "

	| version ss object |
	^ topCall == nil 
		ifTrue: 
			[topCall := #marked.
			version := super next.
			version class == SmallInteger ifFalse: [^ version].	
				"version number, else just a regular object, not in our format, "
			self checkCrLf.
			ss := super next.
			ss class == Array ifFalse: [^ ss].  "just a regular object"
			(ss at: 1) = 'class structure' ifFalse: [^ ss].
			structures := (ss at: 2) rehash.
			superclasses := (ss size > 3 and: [(ss at: 3) = 'superclasses']) 
				ifTrue: [(ss at: 4) rehash]		"class name -> superclass name"
				ifFalse: [Dictionary new].
			(self verifyStructure = 'conversion method needed') ifTrue: [^ nil].
			object := super next rehash.	"all the action here"
			self restoreClassInstVars.		"for UniClasses. version 4"

			topCall := nil.	"reset it"
			object]
		ifFalse:
			[super next rehash]
! !


More information about the Squeak-dev mailing list