[squeak-dev] The Trunk: System-eem.1006.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Mar 14 20:42:59 UTC 2018


Eliot Miranda uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-eem.1006.mcz

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

Name: System-eem.1006
Author: eem
Time: 14 March 2018, 1:42:43.001695 pm
UUID: ed1f0de6-02eb-494d-8d50-3f65cd70bdaa
Ancestors: System-eem.1005

Have MethodReference>>compiledMethod answer nil when the method is no longer present, instead of throwing an error. Use this to make SystemNavigation>>allCallsOn:fromMethodReferences:sorted: more robust.

=============== Diff against System-eem.1005 ===============

Item was changed:
  ----- Method: MethodReference>>compiledMethod (in category 'accessing') -----
  compiledMethod
+ 	^self actualClass compiledMethodAt: methodSymbol ifAbsent: nil!
- 	^ self actualClass compiledMethodAt: methodSymbol!

Item was changed:
  ----- Method: SystemNavigation>>allCallsOn:fromMethodReferences:sorted: (in category 'query') -----
  allCallsOn: aLiteral fromMethodReferences: methodReferences sorted: sorted
  	"Answer a collection of all the methods implemented by behaviors that call on aLiteral even deeply embedded in literal arrays."
  	
  	| result |
  	result := CompiledCode
  				scanBlocksForLiteral: aLiteral
  				do: [:primaryScanner :secondaryScanner | | thorough |
  					"Possibly search for literals embedded in literal arrays or pragmas, etc."
  					thorough := self class thoroughSenders.
  					methodReferences select:
  						[ :reference |
  						reference compiledMethod
+ 							ifNil: [false]
+ 							ifNotNil:
+ 								[:method|
+ 								 method
+ 									refersTo: aLiteral
+ 									primaryBytecodeScanner: primaryScanner
+ 									secondaryBytecodeScanner: secondaryScanner
+ 									thorough: thorough]]].
- 							refersTo: aLiteral
- 							primaryBytecodeScanner: primaryScanner
- 							secondaryBytecodeScanner: secondaryScanner
- 							thorough: thorough]].
  	sorted ifTrue:
  		[result sort].
  	^result!



More information about the Squeak-dev mailing list