A new version of System was added to project The Inbox:
http://source.squeak.org/inbox/System-hjh.962.mcz ==================== Summary ==================== Name: System-hjh.962 Author: hjh Time: 9 October 2017, 10:07:09.966808 pm UUID: 5ebbcac7-a3c3-4c48-9ddc-c669d0498b53 Ancestors: System-dtl.961 Update comment so that the 'finger print' #layoutMorphbosfcepcbbochvimol0 refers to an exiting method in method category '*Morphic-conversion' Reformatted code and renamed sel to selector =============== Diff against System-dtl.961 =============== Item was changed: ----- Method: SmartRefStream>>mapClass: (in category 'read write') ----- + mapClass: incoming + "See if the old class named nm exists. If so, return it. If not, map it to a + new class, and save the mapping in renamed. " + + | cls oldVer selector nm | + + self flag: #bobconv. + nm := renamed + at: incoming + ifAbsent: [incoming]. - mapClass: incoming - "See if the old class named nm exists. If so, return it. If not, map it to a new class, and save the mapping in renamed. " + "allow pre-mapping around collisions" + (nm endsWith: ' class') + ifTrue: [cls := Smalltalk + at: nm substrings first asSymbol + ifAbsent: []. + cls + ifNotNil: [^ cls class]] + ifFalse: [cls := Smalltalk + at: nm + ifAbsent: []. + cls + ifNotNil: [^ cls] + "Known class. It will know how to translate the instance."]. - | cls oldVer sel nm | + "Known class. It will know how to translate the instance." + oldVer := self + versionSymbol: (structures at: nm). + selector := nm asString. + selector at: 1 put: (selector at: 1) asLowercase. + selector := selector , oldVer. + "i.e. #layoutMorphbosfcepcbbochvimol0" - self flag: #bobconv. + Symbol + hasInterned: selector + ifTrue: [:symb | (self class canUnderstand: selector asSymbol) + ifTrue: [reshaped + ifNil: [reshaped := Dictionary new]. + cls := self perform: selector asSymbol]]. + "This class will take responsibility" + cls + ifNil: [cls := self + writeClassRenameMethod: selector + was: nm + fromInstVars: (structures at: nm). + cls isString + ifTrue: [cls := nil]]. + cls + ifNotNil: [renamed at: nm put: cls name]. + ^ cls! - nm := renamed at: incoming ifAbsent: [incoming]. "allow pre-mapping around collisions" - (nm endsWith: ' class') - ifFalse: [cls := Smalltalk at: nm ifAbsent: [nil]. - cls ifNotNil: [^ cls]] "Known class. It will know how to translate the instance." - ifTrue: [cls := Smalltalk at: nm substrings first asSymbol ifAbsent: [nil]. - cls ifNotNil: [^ cls class]]. "Known class. It will know how to translate the instance." - oldVer := self versionSymbol: (structures at: nm). - sel := nm asString. - sel at: 1 put: (sel at: 1) asLowercase. - sel := sel, oldVer. "i.e. #rectangleoc4" - Symbol hasInterned: sel ifTrue: [:symb | - (self class canUnderstand: sel asSymbol) ifTrue: [ - reshaped ifNil: [reshaped := Dictionary new]. - cls := self perform: sel asSymbol]]. "This class will take responsibility" - cls ifNil: [cls := self writeClassRenameMethod: sel was: nm - fromInstVars: (structures at: nm). - cls isString ifTrue: [cls := nil]]. - cls ifNotNil: [renamed at: nm put: cls name]. - ^ cls - ! |
FWIW, I'm pretty sure the variable
'reshaped' is obsolete. It's referenced in one other place and
never really used. On 10/9/17 8:07 PM,
[hidden email] wrote:
A new version of System was added to project The Inbox: http://source.squeak.org/inbox/System-hjh.962.mcz ==================== Summary ==================== Name: System-hjh.962 Author: hjh Time: 9 October 2017, 10:07:09.966808 pm UUID: 5ebbcac7-a3c3-4c48-9ddc-c669d0498b53 Ancestors: System-dtl.961 Update comment so that the 'finger print' #layoutMorphbosfcepcbbochvimol0 refers to an exiting method in method category '*Morphic-conversion' Reformatted code and renamed sel to selector =============== Diff against System-dtl.961 =============== Item was changed: ----- Method: SmartRefStream>>mapClass: (in category 'read write') ----- + mapClass: incoming + "See if the old class named nm exists. If so, return it. If not, map it to a + new class, and save the mapping in renamed. " + + | cls oldVer selector nm | + + self flag: #bobconv. + nm := renamed + at: incoming + ifAbsent: [incoming]. - mapClass: incoming - "See if the old class named nm exists. If so, return it. If not, map it to a new class, and save the mapping in renamed. " + "allow pre-mapping around collisions" + (nm endsWith: ' class') + ifTrue: [cls := Smalltalk + at: nm substrings first asSymbol + ifAbsent: []. + cls + ifNotNil: [^ cls class]] + ifFalse: [cls := Smalltalk + at: nm + ifAbsent: []. + cls + ifNotNil: [^ cls] + "Known class. It will know how to translate the instance."]. - | cls oldVer sel nm | + "Known class. It will know how to translate the instance." + oldVer := self + versionSymbol: (structures at: nm). + selector := nm asString. + selector at: 1 put: (selector at: 1) asLowercase. + selector := selector , oldVer. + "i.e. #layoutMorphbosfcepcbbochvimol0" - self flag: #bobconv. + Symbol + hasInterned: selector + ifTrue: [:symb | (self class canUnderstand: selector asSymbol) + ifTrue: [reshaped + ifNil: [reshaped := Dictionary new]. + cls := self perform: selector asSymbol]]. + "This class will take responsibility" + cls + ifNil: [cls := self + writeClassRenameMethod: selector + was: nm + fromInstVars: (structures at: nm). + cls isString + ifTrue: [cls := nil]]. + cls + ifNotNil: [renamed at: nm put: cls name]. + ^ cls! - nm := renamed at: incoming ifAbsent: [incoming]. "allow pre-mapping around collisions" - (nm endsWith: ' class') - ifFalse: [cls := Smalltalk at: nm ifAbsent: [nil]. - cls ifNotNil: [^ cls]] "Known class. It will know how to translate the instance." - ifTrue: [cls := Smalltalk at: nm substrings first asSymbol ifAbsent: [nil]. - cls ifNotNil: [^ cls class]]. "Known class. It will know how to translate the instance." - oldVer := self versionSymbol: (structures at: nm). - sel := nm asString. - sel at: 1 put: (sel at: 1) asLowercase. - sel := sel, oldVer. "i.e. #rectangleoc4" - Symbol hasInterned: sel ifTrue: [:symb | - (self class canUnderstand: sel asSymbol) ifTrue: [ - reshaped ifNil: [reshaped := Dictionary new]. - cls := self perform: sel asSymbol]]. "This class will take responsibility" - cls ifNil: [cls := self writeClassRenameMethod: sel was: nm - fromInstVars: (structures at: nm). - cls isString ifTrue: [cls := nil]]. - cls ifNotNil: [renamed at: nm put: cls name]. - ^ cls - ! |
Free forum by Nabble | Edit this page |