[squeak-dev] bug in OBMetagraphBuilder>>#reference
Chris Muller
asqueaker at gmail.com
Mon Oct 25 16:16:41 UTC 2010
Hi, I just wanted to let the maintainers of OmniBrowser know, there is
a bug with this method.
The method reflects on its class and performs all that begin with
#populate. However, it is not unusual to expect that someone's
application might have a selector that also begins with the word
'populate'. And so those selectors would be performed as well.
This is why, for cases like this, it is better for a tool, which is
just a means, not an end, to be polite with the namespace; such as
checking for 'obPopulate' perhaps rather than simply 'populate'.
But that's just a mini-rant, not even the bug. The bug is, my
'populate' is not a unary message, so I get a failure on the perform,
"incorrect number of arguments."
I therefore always change the method to:
OBMetagraphBuilder >> execute
((self class allSelectors select: [:ea | (ea beginsWith: 'populate')
and: [ ea isUnary ]]) asSortedArray)
do: [:selector | self perform: selector].
^ self root
Thank you,
Chris
More information about the Squeak-dev
mailing list
|