Bryce McKinlay wrote:
> GetCallingClass(Class) is intended for situations where you 
> really want the caller of an external API into the class,
> but due to overloaded methods or inlining may have an
> indeterminate number of frames between the external method
> and the site at which GetCallingClass() is called. 
> java.lang.reflect and ResourceBundle are two examples where 
> it is useful - we never want ResourceBundle.class or
> Field.class, for example, to be returned there.

None of the above really applies to VMStackWalker.getCallingClass(). It
has well defined semantics and requires no hacks or workarounds, only a
VM that can reliably walk the stack (i.e. know which frames are non-Java
and prevent inlining from losing frames).

If gcj cannot reliably walk the stack at the moment, I suggest modifying
the code generator to add the class argument to the
VMStackWalker.getCallingClass(), instead of muddling up the VM interface
with that.

Regards,
Jeroen

Reply via email to