Print this page


Split Close
Expand all
Collapse all
          --- old/src/share/native/java/net/InetAddress.c
          +++ new/src/share/native/java/net/InetAddress.c
↓ open down ↓ 28 lines elided ↑ open up ↑
  29   29  #include "net_util.h"
  30   30  
  31   31  /************************************************************************
  32   32   * InetAddress
  33   33   */
  34   34  
  35   35  jclass ia_class;
  36   36  jfieldID ia_addressID;
  37   37  jfieldID ia_familyID;
  38   38  jfieldID ia_preferIPv6AddressID;
       39 +jfieldID ia_hostNameID;
  39   40  
  40   41  /*
  41   42   * Class:     java_net_InetAddress
  42   43   * Method:    init
  43   44   * Signature: ()V
  44   45   */
  45   46  JNIEXPORT void JNICALL
  46   47  Java_java_net_InetAddress_init(JNIEnv *env, jclass cls) {
  47      -    jclass c = (*env)->FindClass(env,"java/net/InetAddress");
  48      -    CHECK_NULL(c);
  49      -    ia_class = (*env)->NewGlobalRef(env, c);
  50      -    CHECK_NULL(ia_class);
  51      -    ia_addressID = (*env)->GetFieldID(env, ia_class, "address", "I");
  52      -    CHECK_NULL(ia_addressID);
  53      -    ia_familyID = (*env)->GetFieldID(env, ia_class, "family", "I");
  54      -    CHECK_NULL(ia_familyID);
  55      -    ia_preferIPv6AddressID = (*env)->GetStaticFieldID(env, ia_class, "preferIPv6Address", "Z");
  56      -    CHECK_NULL(ia_preferIPv6AddressID);
       48 +    if (ia_hostNameID == NULL) {
       49 +        jclass c = (*env)->FindClass(env,"java/net/InetAddress");
       50 +        CHECK_NULL(c);
       51 +        ia_class = (*env)->NewGlobalRef(env, c);
       52 +        CHECK_NULL(ia_class);
       53 +        ia_addressID = (*env)->GetFieldID(env, ia_class, "address", "I");
       54 +        CHECK_NULL(ia_addressID);
       55 +        ia_familyID = (*env)->GetFieldID(env, ia_class, "family", "I");
       56 +        CHECK_NULL(ia_familyID);
       57 +        ia_preferIPv6AddressID = (*env)->GetStaticFieldID(env, ia_class, "preferIPv6Address", "Z");
       58 +        CHECK_NULL(ia_preferIPv6AddressID);
       59 +        ia_hostNameID = (*env)->GetFieldID(env, ia_class, "hostName", "Ljava/lang/String;");
       60 +    }
  57   61  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX