The Trunk: System-eem.1006.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: System-eem.1006.mcz

commits-2
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!