On 3/6/2013 12:50 PM, Mike Duigou wrote:
Hi Bill;

Some notes from reviewing the JDK side changes.


System.java/Runtime.java:

The example which begins with the name "If the filename argument, " needs to better 
identify that "L" is an example. (Italics?)
Re-worded that a bit.
java/lang/ClassLoader.java:

NativeLibrary::fromClass could be final.
Ok.

ClassLoader.c:

In Java_java_lang_ClassLoader_00024NativeLibrary_findBuiltinLib()

These two values are known at compile time.

int prefixLen = (int) strlen(JNI_LIB_PREFIX);
int suffixLen = (int) strlen(JNI_LIB_SUFFIX);

Some of the error conditions don't throw exceptions. Such as:

if (cname == NULL) {
    return NULL;
    }
Fixed.
The prefix and suffix are stripped from cname without checking that cname 
actually contains the prefix or suffix.
..._findBuiltinLib is only called after System.mapLibraryName has added prefix and suffix.

if (len > prefixLen) is invariant.
Based on System.mapLibraryName always called, then this could just be an assert. Unless JNU_GetStringPlatformChars returns some bogus string.

src/solaris/native/common/jni_util_md.c:

void* getProcessHandle() {
  static void* procHandle = NULL;
  if (procHandle == NULL) {
     procHandle = (void*)dlopen(NULL, RTLD_LAZY);
  }

  return procHandle;
}

Why is the error handling code commented out?
That was just for some debugging. I've removed it.

Thanks for commenting. I'll get a new webrev up shortly.

bill



Mike


On Mar 5 2013, at 15:05 , bill.pitt...@oracle.com wrote:

This request is tied to bugid 8005716 that deals with adding support for 
statically linked JNI libraries.

The JEP is here: http://openjdk.java.net/jeps/178

The bug is here:http://bugs.sun.com/view_bug.do?bug_id=8005716

The webrevs are here:

http://cr.openjdk.java.net/~bpittore/8005716/jdk-webrev.00/
http://cr.openjdk.java.net/~bpittore/8005716/hs-webrev.00/

The main piece of functionality is to check for the presence of 
JNI_OnLoad_libname to determine if the library specified by 'libname' has been 
statically linked into the VM. If the symbol is found, it is assumed that the 
library is linked in and will not be dynamically loaded.

thanks,
bill

Reply via email to