Marcel Taeumel uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-mt.1140.mcz ==================== Summary ==================== Name: System-mt.1140 Author: mt Time: 4 March 2020, 10:44:12.509115 am UUID: a9e21172-de3e-c14d-9622-08d3eb015e50 Ancestors: System-nice.1139 Removes some refs to deprecated classes. =============== Diff against System-nice.1139 =============== Item was changed: ----- Method: NativeImageSegment>>rootsIncludingBlocks (in category 'read/write segment') ----- rootsIncludingBlocks "For export segments only. Return a new roots array with more objects. (Caller should store into rootArray.) Collect Blocks and external methods pointed to by them. Put them into the roots list. Then ask for the segment again." | extras have | userRootCnt ifNil: [userRootCnt := arrayOfRoots size]. extras := OrderedCollection new. outPointers do: [:anOut | anOut class == CompiledMethod ifTrue: [extras add: anOut]. (anOut isBlock) ifTrue: [extras add: anOut]. + (anOut class == Context) ifTrue: [extras add: anOut]]. - (anOut class == MethodContext) ifTrue: [extras add: anOut]]. [have := extras size. extras copy do: [:anOut | anOut isBlock ifTrue: [ anOut home ifNotNil: [ (extras includes: anOut home) ifFalse: [extras add: anOut home]]]. + (anOut class == Context) ifTrue: [ - (anOut class == MethodContext) ifTrue: [ anOut method ifNotNil: [ (extras includes: anOut method) ifFalse: [extras add: anOut method]]]]. have = extras size] whileFalse. extras := extras select: [:ea | (arrayOfRoots includes: ea) not]. extras isEmpty ifTrue: [^ nil]. "no change" ^ arrayOfRoots, extras! Item was changed: ----- Method: NativeImageSegment>>storeDataOn: (in category 'fileIn/Out') ----- storeDataOn: aDataStream "Don't wrote the array of Roots. Also remember the structures of the classes of objects inside the segment." | tempRoots tempOutP list | state = #activeCopy ifFalse: [self error: 'wrong state']. "real state is activeCopy, but we changed it will be right when coming in" tempRoots := arrayOfRoots. tempOutP := outPointers. outPointers := outPointers shallowCopy. self prepareToBeSaved. arrayOfRoots := nil. state := #imported. super storeDataOn: aDataStream. "record my inst vars" arrayOfRoots := tempRoots. outPointers := tempOutP. state := #activeCopy. aDataStream references at: #AnImageSegment put: false. "the false is meaningless" "This key in refs is the flag that there is an ImageSegment in this file." "Find the receivers of blocks in the segment. Need to get the structure of their classes into structures. Put the receivers into references." (aDataStream byteStream isKindOf: DummyStream) ifTrue: [ list := Set new. arrayOfRoots do: [:ea | + ea isBlock | (ea class == Context) ifTrue: [ - ea isBlock | (ea class == MethodContext) ifTrue: [ list add: ea receiver class ]]. aDataStream references at: #BlockReceiverClasses put: list].! |
Free forum by Nabble | Edit this page |