jdk/src/windows/native/java/net/NetworkInterface.c
changeset 23563 71ed058849d4
parent 23010 6dadb192ad81
equal deleted inserted replaced
23562:596efd9dfcaf 23563:71ed058849d4
   541 
   541 
   542     /*
   542     /*
   543      * Create a NetworkInterface object and populate it
   543      * Create a NetworkInterface object and populate it
   544      */
   544      */
   545     netifObj = (*env)->NewObject(env, ni_class, ni_ctor);
   545     netifObj = (*env)->NewObject(env, ni_class, ni_ctor);
       
   546     CHECK_NULL_RETURN(netifObj, NULL);
   546     name = (*env)->NewStringUTF(env, ifs->name);
   547     name = (*env)->NewStringUTF(env, ifs->name);
       
   548     CHECK_NULL_RETURN(name, NULL);
   547     if (ifs->dNameIsUnicode) {
   549     if (ifs->dNameIsUnicode) {
   548         displayName = (*env)->NewString(env, (PWCHAR)ifs->displayName,
   550         displayName = (*env)->NewString(env, (PWCHAR)ifs->displayName,
   549                                        (jsize)wcslen ((PWCHAR)ifs->displayName));
   551                                        (jsize)wcslen ((PWCHAR)ifs->displayName));
   550     } else {
   552     } else {
   551         displayName = (*env)->NewStringUTF(env, ifs->displayName);
   553         displayName = (*env)->NewStringUTF(env, ifs->displayName);
   552     }
   554     }
   553     if (netifObj == NULL || name == NULL || displayName == NULL) {
   555     CHECK_NULL_RETURN(displayName, NULL);
   554         return NULL;
       
   555     }
       
   556     (*env)->SetObjectField(env, netifObj, ni_nameID, name);
   556     (*env)->SetObjectField(env, netifObj, ni_nameID, name);
   557     (*env)->SetObjectField(env, netifObj, ni_displayNameID, displayName);
   557     (*env)->SetObjectField(env, netifObj, ni_displayNameID, displayName);
   558     (*env)->SetIntField(env, netifObj, ni_indexID, ifs->index);
   558     (*env)->SetIntField(env, netifObj, ni_indexID, ifs->index);
   559 
   559 
   560     /*
   560     /*
   680         return NULL;
   680         return NULL;
   681     }
   681     }
   682 
   682 
   683     /* get the name as a C string */
   683     /* get the name as a C string */
   684     name_utf = (*env)->GetStringUTFChars(env, name, &isCopy);
   684     name_utf = (*env)->GetStringUTFChars(env, name, &isCopy);
   685 
   685     if (name_utf != NULL) {
   686     /* Search by name */
   686 
   687     curr = ifList;
   687         /* Search by name */
   688     while (curr != NULL) {
   688         curr = ifList;
   689         if (strcmp(name_utf, curr->name) == 0) {
   689         while (curr != NULL) {
   690             break;
   690             if (strcmp(name_utf, curr->name) == 0) {
   691         }
   691                 break;
   692         curr = curr->next;
   692             }
   693     }
   693             curr = curr->next;
   694 
   694         }
   695     /* if found create a NetworkInterface */
   695 
   696     if (curr != NULL) {;
   696         /* if found create a NetworkInterface */
   697         netifObj = createNetworkInterface(env, curr, -1, NULL);
   697         if (curr != NULL) {;
   698     }
   698             netifObj = createNetworkInterface(env, curr, -1, NULL);
   699 
   699         }
   700     /* release the UTF string */
   700 
   701     (*env)->ReleaseStringUTFChars(env, name, name_utf);
   701         /* release the UTF string */
       
   702         (*env)->ReleaseStringUTFChars(env, name, name_utf);
       
   703     } else {
       
   704         if (!(*env)->ExceptionCheck(env))
       
   705             JNU_ThrowOutOfMemoryError(env, NULL);
       
   706     }
   702 
   707 
   703     /* release the interface list */
   708     /* release the interface list */
   704     free_netif(ifList);
   709     free_netif(ifList);
   705 
   710 
   706     return netifObj;
   711     return netifObj;