mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 02:54:35 +02:00
Merge
This commit is contained in:
commit
28e828130d
129 changed files with 2316 additions and 591 deletions
|
@ -297,6 +297,22 @@ JNU_NotifyAll(JNIEnv *env, jobject object);
|
|||
} \
|
||||
} while (0) \
|
||||
|
||||
#define CHECK_NULL_THROW_NPE(env, x, msg) \
|
||||
do { \
|
||||
if ((x) == NULL) { \
|
||||
JNU_ThrowNullPointerException((env), (msg));\
|
||||
return; \
|
||||
} \
|
||||
} while(0) \
|
||||
|
||||
#define CHECK_NULL_THROW_NPE_RETURN(env, x, msg, z)\
|
||||
do { \
|
||||
if ((x) == NULL) { \
|
||||
JNU_ThrowNullPointerException((env), (msg));\
|
||||
return (z); \
|
||||
} \
|
||||
} while(0) \
|
||||
|
||||
#define CHECK_NULL_RETURN(x, y) \
|
||||
do { \
|
||||
if ((x) == NULL) { \
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -171,32 +171,38 @@ jboolean setInet6Address_ipaddress(JNIEnv *env, jobject iaObj, char *address) {
|
|||
|
||||
void setInetAddress_addr(JNIEnv *env, jobject iaObj, int address) {
|
||||
jobject holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
|
||||
CHECK_NULL_THROW_NPE(env, holder, "InetAddress holder is null");
|
||||
(*env)->SetIntField(env, holder, iac_addressID, address);
|
||||
}
|
||||
|
||||
void setInetAddress_family(JNIEnv *env, jobject iaObj, int family) {
|
||||
jobject holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
|
||||
CHECK_NULL_THROW_NPE(env, holder, "InetAddress holder is null");
|
||||
(*env)->SetIntField(env, holder, iac_familyID, family);
|
||||
}
|
||||
|
||||
void setInetAddress_hostName(JNIEnv *env, jobject iaObj, jobject host) {
|
||||
jobject holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
|
||||
CHECK_NULL_THROW_NPE(env, holder, "InetAddress holder is null");
|
||||
(*env)->SetObjectField(env, holder, iac_hostNameID, host);
|
||||
(*env)->SetObjectField(env, holder, iac_origHostNameID, host);
|
||||
}
|
||||
|
||||
int getInetAddress_addr(JNIEnv *env, jobject iaObj) {
|
||||
jobject holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
|
||||
CHECK_NULL_THROW_NPE_RETURN(env, holder, "InetAddress holder is null", -1);
|
||||
return (*env)->GetIntField(env, holder, iac_addressID);
|
||||
}
|
||||
|
||||
int getInetAddress_family(JNIEnv *env, jobject iaObj) {
|
||||
jobject holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
|
||||
CHECK_NULL_THROW_NPE_RETURN(env, holder, "InetAddress holder is null", -1);
|
||||
return (*env)->GetIntField(env, holder, iac_familyID);
|
||||
}
|
||||
|
||||
jobject getInetAddress_hostName(JNIEnv *env, jobject iaObj) {
|
||||
jobject holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
|
||||
CHECK_NULL_THROW_NPE_RETURN(env, holder, "InetAddress holder is null", NULL);
|
||||
return (*env)->GetObjectField(env, holder, iac_hostNameID);
|
||||
}
|
||||
|
||||
|
@ -211,7 +217,9 @@ NET_SockaddrToInetAddress(JNIEnv *env, SOCKETADDRESS *sa, int *port) {
|
|||
CHECK_NULL_RETURN(iaObj, NULL);
|
||||
address = NET_IPv4MappedToIPv4(caddr);
|
||||
setInetAddress_addr(env, iaObj, address);
|
||||
JNU_CHECK_EXCEPTION_RETURN(env, NULL);
|
||||
setInetAddress_family(env, iaObj, java_net_InetAddress_IPv4);
|
||||
JNU_CHECK_EXCEPTION_RETURN(env, NULL);
|
||||
} else {
|
||||
jboolean ret;
|
||||
iaObj = (*env)->NewObject(env, ia6_class, ia6_ctrID);
|
||||
|
@ -220,6 +228,7 @@ NET_SockaddrToInetAddress(JNIEnv *env, SOCKETADDRESS *sa, int *port) {
|
|||
if (ret == JNI_FALSE)
|
||||
return NULL;
|
||||
setInetAddress_family(env, iaObj, java_net_InetAddress_IPv6);
|
||||
JNU_CHECK_EXCEPTION_RETURN(env, NULL);
|
||||
setInet6Address_scopeid(env, iaObj, sa->sa6.sin6_scope_id);
|
||||
}
|
||||
*port = ntohs(sa->sa6.sin6_port);
|
||||
|
@ -227,7 +236,9 @@ NET_SockaddrToInetAddress(JNIEnv *env, SOCKETADDRESS *sa, int *port) {
|
|||
iaObj = (*env)->NewObject(env, ia4_class, ia4_ctrID);
|
||||
CHECK_NULL_RETURN(iaObj, NULL);
|
||||
setInetAddress_family(env, iaObj, java_net_InetAddress_IPv4);
|
||||
JNU_CHECK_EXCEPTION_RETURN(env, NULL);
|
||||
setInetAddress_addr(env, iaObj, ntohl(sa->sa4.sin_addr.s_addr));
|
||||
JNU_CHECK_EXCEPTION_RETURN(env, NULL);
|
||||
*port = ntohs(sa->sa4.sin_port);
|
||||
}
|
||||
return iaObj;
|
||||
|
@ -238,6 +249,7 @@ NET_SockaddrEqualsInetAddress(JNIEnv *env, SOCKETADDRESS *sa, jobject iaObj)
|
|||
{
|
||||
jint family = getInetAddress_family(env, iaObj) ==
|
||||
java_net_InetAddress_IPv4 ? AF_INET : AF_INET6;
|
||||
JNU_CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
|
||||
if (sa->sa.sa_family == AF_INET6) {
|
||||
jbyte *caddrNew = (jbyte *)&sa->sa6.sin6_addr;
|
||||
if (NET_IsIPv4Mapped(caddrNew)) {
|
||||
|
@ -247,6 +259,7 @@ NET_SockaddrEqualsInetAddress(JNIEnv *env, SOCKETADDRESS *sa, jobject iaObj)
|
|||
}
|
||||
addrNew = NET_IPv4MappedToIPv4(caddrNew);
|
||||
addrCur = getInetAddress_addr(env, iaObj);
|
||||
JNU_CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
|
||||
if (addrNew == addrCur) {
|
||||
return JNI_TRUE;
|
||||
} else {
|
||||
|
@ -273,6 +286,7 @@ NET_SockaddrEqualsInetAddress(JNIEnv *env, SOCKETADDRESS *sa, jobject iaObj)
|
|||
}
|
||||
addrNew = ntohl(sa->sa4.sin_addr.s_addr);
|
||||
addrCur = getInetAddress_addr(env, iaObj);
|
||||
JNU_CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
|
||||
if (addrNew == addrCur) {
|
||||
return JNI_TRUE;
|
||||
} else {
|
||||
|
|
|
@ -739,13 +739,13 @@ ZIP_Open_Generic(const char *name, char **pmsg, int mode, jlong lastModified)
|
|||
jzfile *zip = NULL;
|
||||
|
||||
/* Clear zip error message */
|
||||
if (pmsg != 0) {
|
||||
if (pmsg != NULL) {
|
||||
*pmsg = NULL;
|
||||
}
|
||||
|
||||
zip = ZIP_Get_From_Cache(name, pmsg, lastModified);
|
||||
|
||||
if (zip == NULL && *pmsg == NULL) {
|
||||
if (zip == NULL && pmsg != NULL && *pmsg == NULL) {
|
||||
ZFILE zfd = ZFILE_Open(name, mode);
|
||||
zip = ZIP_Put_In_Cache(name, zfd, pmsg, lastModified);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue