[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Loading native libraries
From: |
Jeroen Frijters |
Subject: |
RE: Loading native libraries |
Date: |
Thu, 3 Jun 2004 18:29:19 +0200 |
David P Grove wrote:
> > Archie Cobbs wrote:
> > > Before I go and implement this, does this sound correct
> to everyone?
> >
> > I think we desperately need a VMClassLoader.getCallerClassLoader()
> > method. That way we can simply modify the various load/loadLibrary
> > methods to call that. It's also much more efficient to
> implement and can
> > be interacts better with method inlining.
>
> In Jikes RVM we use an internal widget called
> VM_StackBrowser. Think of it as an interator on the thread
> stack. It supports the following primary functionality:
> (1) get the VMClass or java.lang.Classloader for the current
> stackframe
> (2) move up one stackframe.
>
> This is more flexible than getCallerClassLoader, but also
> much more efficient in that it doesn't force the big nasty []
> for the entire stack to be created up-front when the caller
> almost never wants more than the top few frames. The
> implementation works on the stack directly and doesn't create
> useless objects/arrays of stuff that clients don't actually need.
>
> I'd suggest that something like this be adopted by classpath
> as the low-level interface for walking stakframes. It can be
> both efficient and flexible at the same time.
That's definitely a worthwhile improvement over the array approach, but
I'd still like to see getCallerClassLoader special cased, because that
allows the JIT to inline methods that use it (if you have a JIT that
knows about getCallerClassLoader).
Regards,
Jeroen