/* * Create a FileDescriptor object corresponding to the given int fd */ jobject fd_create(JNIEnv *env, int fd) { jobject obj = (*env)->NewObject(env, fd_class, fd_constructor); PASS_EXCEPTIONS_RET(env, NULL); (*env)->SetIntField(env, obj, fd_descriptor, fd); return obj; }
/* * Create a FileDescriptor object corresponding to the given int fd */ jobject fd_create(JNIEnv *env, long fd) { jobject obj = (*env)->NewObject(env, fd_class, fd_constructor); PASS_EXCEPTIONS_RET(env, (jobject) NULL); (*env)->SetLongField(env, obj, fd_handle, fd); return obj; }
/** * Returns non-zero if the user has specified that the system * has non-threadsafe implementations of getpwuid_r or getgrgid_r. **/ static int workaround_non_threadsafe_calls(JNIEnv *env, jclass clazz) { jfieldID needs_workaround_field = (*env)->GetStaticFieldID(env, clazz, "workaroundNonThreadSafePasswdCalls", "Z"); PASS_EXCEPTIONS_RET(env, 0); assert(needs_workaround_field); jboolean result = (*env)->GetStaticBooleanField( env, clazz, needs_workaround_field); return result; }
jobject errno_to_enum(JNIEnv *env, int errnum) { char *str = errno_to_string(errnum); assert(str != NULL); jstring jstr = (*env)->NewStringUTF(env, str); PASS_EXCEPTIONS_RET(env, NULL); return (*env)->CallStaticObjectMethod( env, enum_class, enum_valueOf, errno_class, jstr); }