2009/2/23 Yoshiki Ohshima yoshiki@vpri.org:
At Sat, 21 Feb 2009 09:37:29 +0200, Igor Stasenko wrote:
i think it wouldn't hurt to rewrite it as:
isContextHeader: aHeader self inline: true. | hdr | hdr := aHeader bitAnd: (16r1F << 12). ^ hdr = (13 << 12) "MethodContext" or: [ hdr = (14 << 12) "BlockContext" or: [ hdr = (4 << 12)]] "PseudoContext"
This is totally tangent but I was supposed to relay a message from somebody (IIRC it was originally from Dave Ungar but a few hops in between) pointed out that "13" is BlockContext and "14" is MethodContext in the image.
I just copied the source, didn't really changed anything in it.. so it sits there for a while :)
(This level of nitpicking may not have anything to do with average Squeakers but for VM hackers I understand it could be crucial^^;)
Yup, this is another argument in having:
OopHeader>>isContextHeader ^ self isMethodContext or: [self isBlockContext or: [self isPseudoContext ]]
instead of numerous #bitAnd: and #<< in many different places :)
-- Yoshiki