The Trunk: Tools-nice.174.mcz

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

The Trunk: Tools-nice.174.mcz

commits-2
Nicolas Cellier uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-nice.174.mcz

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

Name: Tools-nice.174
Author: nice
Time: 9 February 2010, 3:26:58.031 pm
UUID: ee5319af-8e72-b246-96c9-c5d5af3348f7
Ancestors: Tools-dtl.173

Workaround to avoid a bug in MessageNames finder update logic:
In method #inheritanceButtonColor, currentCompiledMethod becomes undefined when selecting an un-implemented message.
Apparently, inheritanceButtonColor seems to be called several times, the first one with a non nil instance which is changed to nil before method finishes...

=============== Diff against Tools-dtl.173 ===============

Item was changed:
  ----- Method: CodeHolder>>inheritanceButtonColor (in category 'toolbuilder') -----
  inheritanceButtonColor
  "Check to see if the currently-viewed method has a super send or an override, and if so, change screen feedback, unless the #decorateBrowserButtons says not to."
 
+ | flags aColor cm |
+ cm := currentCompiledMethod.
+ ((cm isKindOf: CompiledMethod) and: [Preferences decorateBrowserButtons])
- | flags aColor |
- ((currentCompiledMethod isKindOf: CompiledMethod) and: [Preferences decorateBrowserButtons])
  ifFalse: [^Color transparent].
 
  "This table duplicates the old logic, but adds two new colors for the cases where there is a superclass definition, but this method doesn't call it."
 
  flags := 0.
  self isThisAnOverride ifTrue: [ flags := flags bitOr: 4 ].
+ cm sendsToSuper ifTrue: [ flags := flags bitOr: 2 ].
- currentCompiledMethod sendsToSuper ifTrue: [ flags := flags bitOr: 2 ].
  self isThereAnOverride ifTrue: [ flags := flags bitOr: 1 ].
  aColor := {
  Color transparent.
  Color tan lighter.
  Color green muchLighter.
  Color blue muchLighter.
  Color red muchLighter. "has super but doesn't call it"
  (Color r: 0.94 g: 0.823 b: 0.673). "has sub; has super but doesn't call it"
  Color green muchLighter.
  Color blue muchLighter.
  } at: flags + 1.
 
  ^aColor!