hotspot/src/share/vm/prims/nativeLookup.cpp
changeset 2534 08dac9ce0cd7
parent 1 489c9b5090e2
child 4571 80b553bddc26
equal deleted inserted replaced
2533:9aa50ba9a67f 2534:08dac9ce0cd7
     1 /*
     1 /*
     2  * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
     2  * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    76   return st.as_string();
    76   return st.as_string();
    77 }
    77 }
    78 
    78 
    79 extern "C" {
    79 extern "C" {
    80   void JNICALL JVM_RegisterUnsafeMethods(JNIEnv *env, jclass unsafecls);
    80   void JNICALL JVM_RegisterUnsafeMethods(JNIEnv *env, jclass unsafecls);
       
    81   void JNICALL JVM_RegisterMethodHandleMethods(JNIEnv *env, jclass unsafecls);
    81   void JNICALL JVM_RegisterPerfMethods(JNIEnv *env, jclass perfclass);
    82   void JNICALL JVM_RegisterPerfMethods(JNIEnv *env, jclass perfclass);
    82 }
    83 }
    83 
    84 
    84 static address lookup_special_native(char* jni_name) {
    85 static address lookup_special_native(char* jni_name) {
    85   // NB: To ignore the jni prefix and jni postfix strstr is used matching.
    86   // NB: To ignore the jni prefix and jni postfix strstr is used matching.
    94       return CAST_FROM_FN_PTR(address, JVM_SetPrimitiveFieldValues);
    95       return CAST_FROM_FN_PTR(address, JVM_SetPrimitiveFieldValues);
    95     }
    96     }
    96   }
    97   }
    97   if (strstr(jni_name, "Java_sun_misc_Unsafe_registerNatives") != NULL) {
    98   if (strstr(jni_name, "Java_sun_misc_Unsafe_registerNatives") != NULL) {
    98     return CAST_FROM_FN_PTR(address, JVM_RegisterUnsafeMethods);
    99     return CAST_FROM_FN_PTR(address, JVM_RegisterUnsafeMethods);
       
   100   }
       
   101   if (strstr(jni_name, "Java_sun_dyn_MethodHandleNatives_registerNatives") != NULL) {
       
   102     return CAST_FROM_FN_PTR(address, JVM_RegisterMethodHandleMethods);
    99   }
   103   }
   100   if (strstr(jni_name, "Java_sun_misc_Perf_registerNatives") != NULL) {
   104   if (strstr(jni_name, "Java_sun_misc_Perf_registerNatives") != NULL) {
   101     return CAST_FROM_FN_PTR(address, JVM_RegisterPerfMethods);
   105     return CAST_FROM_FN_PTR(address, JVM_RegisterPerfMethods);
   102   }
   106   }
   103 
   107