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!