Searching for "thisContext selector"
Tim Olson
tim at jumpnet.com
Mon Aug 17 02:21:27 UTC 1998
>The problem is with the expression "thisContext selector"
> that find the selector searching in the receiver's class
> for the selector who is implemented using "thisContext method"
>
>As I use the same method for all the swappedOut methods
> then, the returned selector is the first selector implemented in
> the receiver's class!
>
>What can I do to get the sent selector of thisContext
> from the VM stack (or current method) ?
You will have to look at the bytecode prior to the sender's PC to
determine its type. If it is a literal send (> 208), then you can get
the selector using something like:
| method pc |
method := thisContext sender method.
pc := thisContext sender pc.
^ method literals at: ((method at: pc-1) - 207)
Common selectors such as the arithmetic primitives and things like "at:"
use special bytecodes in the following ranges:
176-191 sendArithmeticSelectorBytecode
192-207 sendCommonSelectorBytecode
You can determine the selector for these by building a bytecode->selector
dictionary.
-- tim
More information about the Squeak-dev
mailing list
|