[squeak-dev] The Inbox: Tools-ct.931.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Jan 18 15:04:46 UTC 2020


Christoph Thiede uploaded a new version of Tools to project The Inbox:
http://source.squeak.org/inbox/Tools-ct.931.mcz

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

Name: Tools-ct.931
Author: ct
Time: 18 January 2020, 4:04:41.091813 pm
UUID: f26680f1-98eb-1b46-bc36-2f6371daf249
Ancestors: Tools-mt.929

Eliminates massive duplication in VersionsBrowser>>#scanVersionsOf:class:meta:category:selector:. This logic is already defined in ChangeSet class.

Better merge System-ct.1132 before, which fixes a bug regarding the versions' categories.

=============== Diff against Tools-mt.929 ===============

Item was changed:
  ----- Method: VersionsBrowser>>scanVersionsOf:class:meta:category:selector: (in category 'init & update') -----
  scanVersionsOf: method class: class meta: meta category: category selector: selector
+ 
- 	| position prevPos prevFileIndex preamble tokens sourceFilesCopy stamp cat |
  	selectorOfMethod := selector.
  	currentCompiledMethod := method.
  	classOfMethod := meta ifTrue: [class class] ifFalse: [class].
- 	cat := category ifNil: [''].
  	changeList := OrderedCollection new.
  	list := OrderedCollection new.
  	self addedChangeRecord ifNotNil: [ :change |
+ 		self
+ 			addItem: change
+ 			text: ('{1} (in {2})' translated
+ 				format: { change stamp. change fileName }) ].
- 		self addItem: change text: ('{1} (in {2})' translated format: { change stamp. change fileName }) ].
  	listIndex := 0.
+ 	(ChangeSet scanVersionsOf: method class: class meta: meta category: category selector: selector)
+ 		do: [ :change |
+ 			self
+ 				addItem: change
+ 				text: ('{1} {2} {3} \{{4}\}' translated format: {
+ 					change stamp. classOfMethod name. selector. change category })].
+ 	listSelections := Array new: list size withAll: false.!
- 	position := method filePosition.
- 	sourceFilesCopy := SourceFiles collect:
- 		[:x | x isNil ifTrue: [ nil ]
- 				ifFalse: [x readOnlyCopy]].
- 	method fileIndex = 0 ifTrue: [^ nil].
- 	file := sourceFilesCopy at: method fileIndex.
- 
- 	[position notNil & file notNil]
- 		whileTrue:
- 		[preamble := method getPreambleFrom: file at: (0 max: position - 3).
- 
- 		"Preamble is likely a linked method preamble, if we're in
- 			a changes file (not the sources file).  Try to parse it
- 			for prior source position and file index"
- 		prevPos := nil.
- 		stamp := ''.
- 		(preamble findString: 'methodsFor:' startingAt: 1) > 0
- 			ifTrue: [tokens := Scanner new scanTokens: preamble]
- 			ifFalse: [tokens := Array new  "ie cant be back ref"].
- 		((tokens size between: 7 and: 8)
- 			and: [(tokens at: tokens size - 5) = #methodsFor:])
- 			ifTrue:
- 				[(tokens at: tokens size - 3) = #stamp:
- 				ifTrue: ["New format gives change stamp and unified prior pointer"
- 						stamp := tokens at: tokens size - 2.
- 						prevPos := tokens last.
- 						prevFileIndex := sourceFilesCopy fileIndexFromSourcePointer: prevPos.
- 						prevPos := sourceFilesCopy filePositionFromSourcePointer: prevPos]
- 				ifFalse: ["Old format gives no stamp; prior pointer in two parts"
- 						prevPos := tokens at: tokens size - 2.
- 						prevFileIndex := tokens last].
- 				cat := tokens at: tokens size - 4.
- 				(prevPos = 0 or: [prevFileIndex = 0]) ifTrue: [prevPos := nil]].
- 		((tokens size between: 5 and: 6)
- 			and: [(tokens at: tokens size - 3) = #methodsFor:])
- 			ifTrue:
- 				[(tokens at: tokens size - 1) = #stamp:
- 				ifTrue: ["New format gives change stamp and unified prior pointer"
- 						stamp := tokens at: tokens size].
- 				cat := tokens at: tokens size - 2].
-  		self addItem:
- 				(ChangeRecord new file: file position: position type: #method
- 						class: class name category: cat meta: meta stamp: stamp)
- 			text: stamp , ' ' , class name , (meta ifTrue: [' class '] ifFalse: [' ']) , selector, ' {', cat, '}'.
- 		position := prevPos.
- 		prevPos notNil ifTrue:
- 			[file := sourceFilesCopy at: prevFileIndex]].
- 	sourceFilesCopy do: [:x | x notNil ifTrue: [x close]].
- 	listSelections := Array new: list size withAll: false!



More information about the Squeak-dev mailing list