[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
|