On Dec 1, 2011, at 18:55 , Steve Hart wrote:

> We have been running ruby for about 7 years as an embedded interpreter
> and we are trying to upgrade from 1.8.7 to 1.9.3. One of the things we
> do is to add an event hook using rb_add_event_hook for event type
> RUBY_EVENT_CALL
> This allows us to 'know' what ruby method is being called.
> In our function for the hook proc we use the passed in ID value to =
tell
> us the name of the ruby method that is about to run. This works well =
in
> 1.8.7.
>=20
> In 1.9.3 the id passed in is always 0. Looking thru the code I can see
> that this is marked in insns.def as 'TODO' (insns.def line 875 -
> EXEC_EVENT_HOOK(th, flag, GET_SELF(), 0, 0 /* TODO: id, klass */);
> I'm not sure yet what insns.def is or how it works - but without the
> method id our code dies.

Chase the code down to the handler and you'll see that they look up the =
class and id whenever it is 0.=