deep-c-rsc/jcgo_Out/VMIntAdd.c

616 lines
15 KiB
C
Raw Normal View History

2021-07-16 18:07:51 -04:00
/* DO NOT EDIT THIS FILE - it is machine generated (JCGO_116) */
#ifdef JCGO_SEPARATED
#define JCGO_116
#include "jcgortl.h"
#include "Main.h"
#endif
#ifdef JCGO_116
#ifdef CHKALL_java_net_VMInetAddress
#include "jcgobchk.h"
#endif
JCGO_NOSEP_INLINE jint CFASTCALL
java_net_VMInetAddress__lookupInaddrAny0__( void )
{
#ifdef NOJAVA_java_net_VMInetAddress_lookupInaddrAny0
jcgo_jniNoNativeFunc();
return (jint)0;
#else
jint jcgo_retval;
JCGO_JNI_BLOCK(0)
jcgo_retval= JCGO_JNI_FUNC(Java_java_net_VMInetAddress_lookupInaddrAny0)(jcgo_pJniEnv,
(jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_net_VMInetAddress__class)));
jcgo_jniLeave(jcgo_pJniEnv, NULL);
return jcgo_retval;
#endif
}
JCGO_NOSEP_INLINE jbyteArr CFASTCALL
java_net_VMInetAddress__atonIPv6__Ls( java_lang_String address )
{
{
jbyteArr addr;
jint len;
jint pos;
jint firstPos;
jint j;
jint value;
jint zerosIndex;
jboolean hasDigits;
len= (JCGO_CALL_FINALF(address) java_lang_String__length__(
address));
if (len <= (jint)1)
{
return (jbyteArr)jnull;
}
pos= (java_lang_String__indexOf__II(
address, (jchar)37/*'%'*/, 0));
if (pos >= 0)
{
if (len - (jint)1 == pos)
{
return (jbyteArr)jnull;
}
len= pos;
}
pos= 0;
if ((java_lang_String__charAt__I(
address, 0)) == (jchar)58/*':'*/)
{
if ((java_lang_String__charAt__I(
address, (jint)1)) != (jchar)58/*':'*/)
{
return (jbyteArr)jnull;
}
pos= (jint)1;
}
addr= (jbyteArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jbyte), 0,
(jint)16);
firstPos= pos;
j= 0;
value= 0;
zerosIndex= (-(jint)1);
hasDigits= jfalse;
while (pos < len)
{
jint digit;
jchar ch;
ch= (java_lang_String__charAt__I(
address, pos++));
digit= ch >= (jchar)48/*'0'*/ && ch <= (jchar)57/*'9'*/? (jint)ch -
(jchar)48/*'0'*/ : ch >= (jchar)65/*'A'*/ && ch <= (jchar)70/*'F'*/?
ch - ((jchar)65/*'A'*/ - (jint)10) : ch >= (jchar)97/*'a'*/ &&
ch <= (jchar)102/*'f'*/? ch - ((jchar)97/*'a'*/ - (jint)10) : (-(jint)1);
if (digit != (-(jint)1))
{
if (value > (jint)4095)
{
return (jbyteArr)jnull;
}
value= JCGO_SHL_F(value, (jint)4) | digit;
hasDigits= (jboolean)jtrue;
}
else
{
if (ch != (jchar)58/*':'*/)
{
jbyteArr addrIPv4;
if (ch != (jchar)46/*'.'*/ || j > (jint)12)
{
return (jbyteArr)jnull;
}
pos= (java_lang_String__indexOf__II(
address, (jchar)46/*'.'*/, pos + (jint)1));
if (pos < 0 || (pos= (java_lang_String__indexOf__II(
address, (jchar)46/*'.'*/, pos + (jint)2))) < 0 || pos >= len)
{
return (jbyteArr)jnull;
}
addrIPv4= (java_net_VMInetAddress__atonIPv4__LsII(
address, firstPos, len));
if (addrIPv4 == jnull)
{
return (jbyteArr)jnull;
}
(java_lang_System__arraycopy__LoILoII(
(java_lang_Object)addrIPv4, (java_lang_Object)addr, 0, j, (jint)4));
hasDigits= (jboolean)jfalse;
j+= (jint)4;
break;
}
firstPos= pos;
if (hasDigits)
{
if (pos == len || j > (jint)14)
{
return (jbyteArr)jnull;
}
JCGO_ARRAY_NZBACCESS(addr, j)= ((jbyte)JCGO_SHR_F(value, (jint)8));
JCGO_ARRAY_NZBACCESS(addr, j + (jint)1)= ((jbyte)value);
hasDigits= (jboolean)jfalse;
j+= (jint)2;
value= 0;
}
else
{
if (zerosIndex >= 0)
{
return (jbyteArr)jnull;
}
zerosIndex= j;
}
}
}
if (hasDigits)
{
if (j > (jint)14)
{
return (jbyteArr)jnull;
}
JCGO_ARRAY_NZBACCESS(addr, j)= ((jbyte)JCGO_SHR_F(value, (jint)8));
JCGO_ARRAY_NZBACCESS(addr, j + (jint)1)= ((jbyte)value);
j+= (jint)2;
}
if (zerosIndex >= 0)
{
if (j == (jint)16)
{
return (jbyteArr)jnull;
}
j-= zerosIndex;
if (j > 0)
{
(java_lang_System__arraycopy__LoILoII(
(java_lang_Object)addr, (java_lang_Object)addr, zerosIndex, (jint)16 -
j, j));
if (j > (jint)8)
{
j= (jint)16 - j;
}
while (j-- > 0)
{
JCGO_ARRAY_NZBACCESS(addr, zerosIndex++)= (jbyte)0;
}
}
}
else
{
if (j != (jint)16)
{
return (jbyteArr)jnull;
}
}
return addr;
}
}
JCGO_NOSEP_INLINE jint CFASTCALL
java_net_VMInetAddress__getHostNeedsSync0__( void )
{
#ifdef NOJAVA_java_net_VMInetAddress_getHostNeedsSync0
jcgo_jniNoNativeFunc();
return (jint)0;
#else
jint jcgo_retval;
JCGO_JNI_BLOCK(0)
jcgo_retval= JCGO_JNI_FUNC(Java_java_net_VMInetAddress_getHostNeedsSync0)(jcgo_pJniEnv,
(jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_net_VMInetAddress__class)));
jcgo_jniLeave(jcgo_pJniEnv, NULL);
return jcgo_retval;
#endif
}
JCGO_NOSEP_FRWINL jbyteArr CFASTCALL
java_net_VMInetAddress__lookupInaddrAny__( void )
{
{
jint address;
jObject jcgo_rcvrL1;
address= (java_net_VMInetAddress__lookupInaddrAny0__());
return (jcgo_rcvrL1= jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jbyte),
0, 4),
JCGO_ARR_INTERNALACC(jbyte, (jbyteArr)jcgo_rcvrL1, 0)= (jbyte)JCGO_SHR_F(address,
(jint)24),
JCGO_ARR_INTERNALACC(jbyte, (jbyteArr)jcgo_rcvrL1, 1)= (jbyte)JCGO_SHR_F(address,
(jint)16),
JCGO_ARR_INTERNALACC(jbyte, (jbyteArr)jcgo_rcvrL1, 2)= (jbyte)JCGO_SHR_F(address,
(jint)8),
JCGO_ARR_INTERNALACC(jbyte, (jbyteArr)jcgo_rcvrL1, 3)= (jbyte)address,
(jbyteArr)jcgo_rcvrL1);
}
}
JCGO_NOSEP_INLINE java_lang_String CFASTCALL
java_net_VMInetAddress__getHostByAddr__BA( jbyteArr ip )
{
{
java_lang_String hostname;
if (ip == jnull)
{
JCGO_THROW_EXC(java_lang_NullPointerException__new__());
}
(java_net_VMInetAddress__initialize__());
if (java_net_VMInetAddress__getHostLock != jnull)
{
{
JCGO_SYNC_BLOCK(java_net_VMInetAddress__getHostLock)
{
hostname= (java_net_VMInetAddress__getHostByAddr0__BAI(
ip, JCGO_ARRAY_NZLENGTH(ip)));
}
JCGO_SYNC_END
}
}
else
{
hostname= (java_net_VMInetAddress__getHostByAddr0__BAI(
ip, JCGO_ARRAY_NZLENGTH(ip)));
}
if (hostname == jnull || (java_lang_String__length__(
hostname)) == 0)
{
JCGO_THROW_EXC(java_net_UnknownHostException__new__());
}
return hostname;
}
}
JCGO_NOSEP_INLINE jObjectArr CFASTCALL
java_net_VMInetAddress__getHostByName__Ls( java_lang_String hostname
)
{
{
jbyteArr ipAddrsBuf;
jObjectArr addrs;
jint count;
jint pos;
(java_net_VMInetAddress__initialize__());
if ((JCGO_CALL_FINALF(hostname) java_lang_String__length__(
hostname)) == 0 || (java_lang_String__charAt__I(
hostname, 0)) <= (jchar)32/*' '*/)
{
JCGO_THROW_EXC((java_net_UnknownHostException__new__Ls(
hostname)));
}
;
ipAddrsBuf= (jbyteArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jbyte),
0, (jint)40);
do
{
jint res;
if (java_net_VMInetAddress__getHostLock != jnull)
{
{
JCGO_SYNC_BLOCK(java_net_VMInetAddress__getHostLock)
{
res= (java_net_VMInetAddress__getHostByName0__LsBAI(
hostname, ipAddrsBuf, JCGO_ARRAY_LENGTH(ipAddrsBuf)));
}
JCGO_SYNC_END
}
}
else
{
res= (java_net_VMInetAddress__getHostByName0__LsBAI(
hostname, ipAddrsBuf, JCGO_ARRAY_LENGTH(ipAddrsBuf)));
}
if (res <= 0)
{
JCGO_THROW_EXC((java_net_UnknownHostException__new__Ls(
hostname)));
}
pos= 0;
for (count= 0; count < res; count++)
{
if (JCGO_ARRAY_NZLENGTH(ipAddrsBuf) <= pos)
{
break;
}
pos= ((jint)((unsigned char)(JCGO_ARRAY_NZBACCESS(ipAddrsBuf, pos)))) +
pos + (jint)1;
}
if (count == res && JCGO_ARRAY_NZLENGTH(ipAddrsBuf) >= pos)
{
break;
}
ipAddrsBuf= (jbyteArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jbyte),
0, JCGO_SHL_F(JCGO_ARRAY_NZLENGTH(ipAddrsBuf), (jint)1));
}
while (jtrue);
addrs= (jObjectArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jbyte),
1, count);
pos= 0;
{
jint i;
i= 0;
for (; i < count; i++)
{
jbyteArr ip;
jint iplen;
iplen= (jint)((unsigned char)(JCGO_ARRAY_BACCESS(ipAddrsBuf, pos++)));
ip= (jbyteArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jbyte), 0,
iplen);
{
jint j;
j= 0;
for (; j < iplen; j++)
{
jObject jcgo_rcvrL1;
jint jcgo_rcvrI1;
jbyte jcgo_rcvrB1;
(jcgo_rcvrL1= (jObject)ip, jcgo_rcvrI1= j, jcgo_rcvrB1= JCGO_ARRAY_NZBACCESS(ipAddrsBuf,
pos++), JCGO_ARRAY_NZBACCESS((jbyteArr)jcgo_rcvrL1, jcgo_rcvrI1)=
jcgo_rcvrB1);
}
}
*(jbyteArr*)&JCGO_ARRAY_NZLACCESS(addrs, i)= ip;
}
}
return addrs;
}
}
JCGO_NOSEP_FRWINL jbyteArr CFASTCALL
java_net_VMInetAddress__aton__Ls( java_lang_String address )
{
{
jbyteArr addr;
jint len;
addr= (jbyteArr)jnull;
len= (JCGO_CALL_FINALF(address) java_lang_String__length__(
address));
if (len > 0)
{
jboolean isIPv6;
isIPv6= jfalse;
if ((java_lang_String__charAt__I(
address, 0)) == (jchar)91/*'['*/)
{
if ((java_lang_String__charAt__I(
address, len - (jint)1)) != (jchar)93/*']'*/)
{
return (jbyteArr)jnull;
}
address= (java_lang_String__substring__II(
address, (jint)1, len - (jint)1));
isIPv6= (jboolean)jtrue;
}
if (isIPv6 || (addr= (java_net_VMInetAddress__atonIPv4__LsII(
address, 0, len))) == jnull)
{
addr= (java_net_VMInetAddress__atonIPv6__Ls(
address));
}
}
return addr;
}
}
JCGO_NOSEP_STATIC jbyteArr CFASTCALL
java_net_VMInetAddress__atonIPv4__LsII( java_lang_String address,
jint pos, jint endPos )
{
{
jint cnt;
cnt= 0;
{
jint i;
i= pos - (jint)1;
for (; (i= (JCGO_CALL_FINALF(address) java_lang_String__indexOf__II(
address, (jchar)46/*'.'*/, i + (jint)2))) >= 0; cnt++)
{
if (i >= endPos)
{
break;
}
}
}
if (cnt <= (jint)3)
{
jbyteArr addr;
addr= (jbyteArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jbyte), 0,
(jint)4);
{
JCGO_TRY_BLOCK
{
{
jint i;
i= 0;
for (; i < cnt; i++)
{
jint nextPos;
jint value;
nextPos= (java_lang_String__indexOf__II(
address, (jchar)46/*'.'*/, pos + (jint)1));
value= (java_net_VMInetAddress__parseUInt__LsII(
address, pos, nextPos));
if (JCGO_USHR_F(value, (jint)1) > (jint)127)
{
#ifndef JCGO_SEHTRY
jcgo_tryLeave();
#endif
return (jbyteArr)jnull;
}
JCGO_ARRAY_NZBACCESS(addr, i)= ((jbyte)value);
pos= nextPos + (jint)1;
}
}
if (pos < endPos)
{
jint value;
value= (java_net_VMInetAddress__parseUInt__LsII(
address, pos, endPos));
if (JCGO_USHR_F((-(jint)1), (JCGO_SHL_F(cnt, (jint)3) + (jint)1)) >=
JCGO_USHR_F(value, (jint)1))
{
while (cnt < (jint)3)
{
JCGO_ARRAY_NZBACCESS(addr, cnt)= ((jbyte)JCGO_SHR_F(value,
JCGO_SHL_F(((jint)3 - cnt), (jint)3)));
cnt++;
}
JCGO_ARRAY_NZBACCESS(addr, (jint)3)= ((jbyte)value);
#ifndef JCGO_SEHTRY
jcgo_tryLeave();
#endif
return addr;
}
}
}
JCGO_TRY_LEAVE
JCGO_TRY_CATCHES(1)
JCGO_TRY_CATCH(OBJT_java_lang_NumberFormatException, MAXT_java_lang_NumberFormatException)
{
}
JCGO_TRY_RETHROW(1)
}
}
return (jbyteArr)jnull;
}
}
JCGO_NOSEP_STATIC jint CFASTCALL
java_net_VMInetAddress__parseUInt__LsII( java_lang_String str, jint
pos, jint endPos )
{
{
jint value;
value= 0;
do
{
jchar ch;
ch= (JCGO_CALL_FINALF(str) java_lang_String__charAt__I(
str, pos));
if (ch < (jchar)48/*'0'*/ || ch > (jchar)57/*'9'*/ || value > JCGO_USHR_F((-(jint)1),
(jint)1) / (jint)5 || ((value= value * (jint)10 + ((jint)ch - (jchar)48/*'0'*/)) >=
0 && (jint)ch - (jchar)48/*'0'*/ > value))
{
JCGO_THROW_EXC(java_lang_NumberFormatException__new__());
}
}
while (++pos < endPos);
return value;
}
}
JCGO_NOSEP_STATIC void CFASTCALL
java_net_VMInetAddress__initialize__( void )
{
{
if (!JCGO_VLT_FETCHZ(java_net_VMInetAddress__initialized))
{
(gnu_java_net_VMAccessorGnuJavaNet__socketsInitVMPlainSocketImpl__());
if ((java_net_VMInetAddress__getHostNeedsSync0__()) != 0)
{
java_lang_Object obj;
obj= java_lang_Object__new__();
if (java_net_VMInetAddress__getHostLock == jnull)
{
java_net_VMInetAddress__getHostLock= obj;
}
}
JCGO_VLT_STOREZ((&java_net_VMInetAddress__initialized), (jboolean)jtrue);
}
}
}
JCGO_NOSEP_STATIC java_lang_String CFASTCALL
java_net_VMInetAddress__getHostByAddr0__BAI( jbyteArr ip, jint iplen
)
{
#ifdef NOJAVA_java_net_VMInetAddress_getHostByAddr0
jcgo_jniNoNativeFunc();
return jnull;
#else
JCGO_JNI_BLOCK(1)
return (java_lang_String)jcgo_jniLeave(jcgo_pJniEnv, (jobject)JCGO_JNI_FUNC(Java_java_net_VMInetAddress_getHostByAddr0)(jcgo_pJniEnv,
(jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_net_VMInetAddress__class)),
(jbyteArray)JCGO_JNI_TOLOCALREF(1, ip), iplen));
#endif
}
JCGO_NOSEP_STATIC jint CFASTCALL
java_net_VMInetAddress__getHostByName0__LsBAI( java_lang_String hostname,
jbyteArr ipAddrsBuf, jint bufSize )
{
#ifdef NOJAVA_java_net_VMInetAddress_getHostByName0
jcgo_jniNoNativeFunc();
return (jint)0;
#else
jint jcgo_retval;
JCGO_JNI_BLOCK(2)
jcgo_retval= JCGO_JNI_FUNC(Java_java_net_VMInetAddress_getHostByName0)(jcgo_pJniEnv,
(jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_net_VMInetAddress__class)),
(jstring)JCGO_JNI_TOLOCALREF(1, hostname), (jbyteArray)JCGO_JNI_TOLOCALREF(2,
ipAddrsBuf), bufSize);
jcgo_jniLeave(jcgo_pJniEnv, NULL);
return jcgo_retval;
#endif
}
JCGO_NOSEP_DATA CONST struct jcgo_methods_s java_net_VMInetAddress_methods=
{
JCGO_CLASSREF_OF(java_net_VMInetAddress__class),
JCGO_GCJDESCR_ZEROINIT
OBJT_java_net_VMInetAddress,
0,
NULL,
JCGO_CLINIT_INIT(0)
0
};
JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_net_VMInetAddress_class_s
java_net_VMInetAddress__class JCGO_THRD_ATTRNONGC=
{
{
&java_lang_Class_methods,
JCGO_MON_INIT
JCGO_OBJREF_OF(*(java_lang_Object)&java_net_VMInetAddress_methods),
JCGO_STRREF_OF(jcgo_string1_VMIntAdd),
JCGO_CLASSREF_OF(java_lang_Object__class),
((jObjectArr)JCGO_OBJREF_OF(jcgo_array3_Object)),
0x10
}
};
JCGO_NOSEP_GCDATA java_lang_Object java_net_VMInetAddress__getHostLock
ATTRIBGCBSS= jnull;
JCGO_NOSEP_DATA JCGO_THRD_VOLATILE jboolean java_net_VMInetAddress__initialized=
(jboolean)0;
JCGO_NOSEP_DATA CONST jcgo_arrtype44_GameShll jcgo_array2_VMIntAdd=
{
(jvtable)&jbyteArr_methods,
JCGO_MON_INIT
22,
{
(jbyte)(jchar)106/*'j'*/, (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)118/*'v'*/,
(jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)46/*'.'*/, (jbyte)(jchar)110/*'n'*/,
(jbyte)(jchar)101/*'e'*/, (jbyte)(jchar)116/*'t'*/, (jbyte)(jchar)46/*'.'*/,
(jbyte)(jchar)86/*'V'*/, (jbyte)(jchar)77/*'M'*/, (jbyte)(jchar)73/*'I'*/,
(jbyte)(jchar)110/*'n'*/, (jbyte)(jchar)101/*'e'*/, (jbyte)(jchar)116/*'t'*/,
(jbyte)(jchar)65/*'A'*/, (jbyte)(jchar)100/*'d'*/, (jbyte)(jchar)100/*'d'*/,
(jbyte)(jchar)114/*'r'*/, (jbyte)(jchar)101/*'e'*/, (jbyte)(jchar)115/*'s'*/,
(jbyte)(jchar)115/*'s'*/
}
};
JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string1_VMIntAdd
JCGO_THRD_ATTRNONGC=
{
&java_lang_String_methods,
JCGO_MON_INIT
(java_lang_Object)JCGO_OBJREF_OF(jcgo_array2_VMIntAdd),
0, 22, (jint)0xff93ea2cL
};
#ifdef CHKALL_java_net_VMInetAddress
#include "jcgochke.h"
#endif
#endif