src/share/native/java/net/net_util.c
Print this page
@@ -95,34 +95,18 @@
struct sockaddr_in6 *him6 = (struct sockaddr_in6 *)him;
#endif
jbyte *caddr = (jbyte *)&(him6->sin6_addr);
if (NET_IsIPv4Mapped(caddr)) {
int address;
- static jclass inet4Cls = 0;
- if (inet4Cls == 0) {
- jclass c = (*env)->FindClass(env, "java/net/Inet4Address");
- CHECK_NULL_RETURN(c, NULL);
- inet4Cls = (*env)->NewGlobalRef(env, c);
- CHECK_NULL_RETURN(inet4Cls, NULL);
- (*env)->DeleteLocalRef(env, c);
- }
- iaObj = (*env)->NewObject(env, inet4Cls, ia4_ctrID);
+ iaObj = (*env)->NewObject(env, ia4_class, ia4_ctrID);
CHECK_NULL_RETURN(iaObj, NULL);
address = NET_IPv4MappedToIPv4(caddr);
(*env)->SetIntField(env, iaObj, ia_addressID, address);
(*env)->SetIntField(env, iaObj, ia_familyID, IPv4);
} else {
- static jclass inet6Cls = 0;
jint scope;
- if (inet6Cls == 0) {
- jclass c = (*env)->FindClass(env, "java/net/Inet6Address");
- CHECK_NULL_RETURN(c, NULL);
- inet6Cls = (*env)->NewGlobalRef(env, c);
- CHECK_NULL_RETURN(inet6Cls, NULL);
- (*env)->DeleteLocalRef(env, c);
- }
- iaObj = (*env)->NewObject(env, inet6Cls, ia6_ctrID);
+ iaObj = (*env)->NewObject(env, ia6_class, ia6_ctrID);
CHECK_NULL_RETURN(iaObj, NULL);
ipaddress = (*env)->NewByteArray(env, 16);
CHECK_NULL_RETURN(ipaddress, NULL);
(*env)->SetByteArrayRegion(env, ipaddress, 0, 16,
(jbyte *)&(him6->sin6_addr));
@@ -138,20 +122,11 @@
*port = ntohs(him6->sin6_port);
} else
#endif /* AF_INET6 */
{
struct sockaddr_in *him4 = (struct sockaddr_in *)him;
- static jclass inet4Cls = 0;
-
- if (inet4Cls == 0) {
- jclass c = (*env)->FindClass(env, "java/net/Inet4Address");
- CHECK_NULL_RETURN(c, NULL);
- inet4Cls = (*env)->NewGlobalRef(env, c);
- CHECK_NULL_RETURN(inet4Cls, NULL);
- (*env)->DeleteLocalRef(env, c);
- }
- iaObj = (*env)->NewObject(env, inet4Cls, ia4_ctrID);
+ iaObj = (*env)->NewObject(env, ia4_class, ia4_ctrID);
CHECK_NULL_RETURN(iaObj, NULL);
(*env)->SetIntField(env, iaObj, ia_familyID, IPv4);
(*env)->SetIntField(env, iaObj, ia_addressID,
ntohl(him4->sin_addr.s_addr));
*port = ntohs(him4->sin_port);