JNIEXPORT jintLong JNICALL OS_NATIVE(SendMessageW__II_3I_3I) #endif (JNIEnv *env, jclass that, jintLong arg0, jint arg1, jintArray arg2, jintArray arg3) { jint *lparg2=NULL; jint *lparg3=NULL; jintLong rc = 0; #ifdef JNI64 OS_NATIVE_ENTER(env, that, SendMessageW__JI_3I_3I_FUNC) #else OS_NATIVE_ENTER(env, that, SendMessageW__II_3I_3I_FUNC) #endif if (arg2) if ((lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL)) == NULL) goto fail; if (arg3) if ((lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL)) == NULL) goto fail; #ifdef _WIN32_WCE /* * Bug on WinCE. SendMessage can fail (return 0) when being passed references * to parameters allocated from the heap. The workaround is to allocate * the parameters on the stack and to copy them back to the java array. * Observed on Pocket PC WinCE 3.0 with EM_GETSEL and CB_GETEDITSEL messages. */ switch (arg1) { case EM_GETSEL: case CB_GETEDITSEL: { jint wParam = 0, lParam = 0; jintLong *lpwParam = NULL, *lplParam = NULL; if (lparg2 != NULL) lpwParam = &wParam; if (lparg3 != NULL) lplParam = &lParam; rc = (jintLong)SendMessageW((HWND)arg0, arg1, (WPARAM)lpwParam, (LPARAM)lplParam); if (lparg2 != NULL) lparg2[0] = wParam; if (lparg3 != NULL) lparg3[0] = lParam; break; } default: rc = (jintLong)SendMessageW((HWND)arg0, arg1, (WPARAM)lparg2, (LPARAM)lparg3); } #else rc = (jintLong)SendMessageW((HWND)arg0, arg1, (WPARAM)lparg2, (LPARAM)lparg3); #endif fail: if (arg2 && lparg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0); if (arg3 && lparg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0); #ifdef JNI64 OS_NATIVE_EXIT(env, that, SendMessageW__JI_3I_3I_FUNC) #else OS_NATIVE_EXIT(env, that, SendMessageW__II_3I_3I_FUNC) #endif return rc; }
JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1cell_1layout_1set_1attributes) (JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jbyteArray arg2, jint arg3, jintLong arg4) { jbyte *lparg2=NULL; OS_NATIVE_ENTER(env, that, _1gtk_1cell_1layout_1set_1attributes_FUNC); if (arg2) if ((lparg2 = (*env)->GetByteArrayElements(env, arg2, NULL)) == NULL) goto fail; /* gtk_cell_layout_set_attributes(arg0, arg1, lparg2, arg3, arg4); */ { /* * On AMD64, it is critical that functions which have a variable number of * arguments, indicated by '...', include the '...' in their prototype. This * changes the calling convention, and leaving it out will cause crashes. * * For some reason, we must also explicitly declare all of the arguments we * are passing in, otherwise it crashes. */ typedef void (*FPTR)(jintLong, jintLong, jbyte *, jint, jintLong, ...); LOAD_FUNCTION(fp, gtk_cell_layout_set_attributes) if (fp) { ((FPTR)fp)(arg0, arg1, lparg2, arg3, arg4); } } fail: if (arg2 && lparg2) (*env)->ReleaseByteArrayElements(env, arg2, lparg2, 0); OS_NATIVE_EXIT(env, that, _1gtk_1cell_1layout_1set_1attributes_FUNC); }
JNIEXPORT void JNICALL OS_NATIVE(DeleteGlobalRef) (JNIEnv *env, jclass that, jint arg0) { OS_NATIVE_ENTER(env, that, DeleteGlobalRef_FUNC); (*env)->DeleteGlobalRef(env, (jobject)arg0); OS_NATIVE_EXIT(env, that, DeleteGlobalRef_FUNC); }
JNIEXPORT jintLong JNICALL OS_NATIVE(_1gtk_1file_1chooser_1dialog_1new) (JNIEnv *env, jclass that, jbyteArray arg0, jintLong arg1, jint arg2, jintLong arg3, jint arg4, jintLong arg5, jint arg6, jintLong arg7) { jbyte *lparg0=NULL; jintLong rc = 0; OS_NATIVE_ENTER(env, that, _1gtk_1file_1chooser_1dialog_1new_FUNC); if (arg0) if ((lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL)) == NULL) goto fail; /* rc = (jintLong)gtk_file_chooser_dialog_new(lparg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); */ { /* * On AMD64, it is critical that functions which have a variable number of * arguments, indicated by '...', include the '...' in their prototype. This * changes the calling convention, and leaving it out will cause crashes. * * For some reason, we must also explicitly declare all of the arguments we * are passing in, otherwise it crashes. */ typedef jintLong (CALLING_CONVENTION* FPTR)(jbyte *, jintLong, jint, jintLong, jint, jintLong, jint, jintLong, ...); LOAD_FUNCTION(fp, gtk_file_chooser_dialog_new) if (fp) { rc = (jintLong)((FPTR) fp)(lparg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); } } fail: if (arg0 && lparg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0); OS_NATIVE_EXIT(env, that, _1gtk_1file_1chooser_1dialog_1new_FUNC); return rc; }
JNIEXPORT jint JNICALL OS_NATIVE(NewGlobalRef) (JNIEnv *env, jclass that, jobject arg0) { jint rc = 0; OS_NATIVE_ENTER(env, that, NewGlobalRef_FUNC); rc = (jint)(*env)->NewGlobalRef(env, arg0); OS_NATIVE_EXIT(env, that, NewGlobalRef_FUNC); return rc; }
JNIEXPORT jobject JNICALL OS_NATIVE(JNIGetObject) (JNIEnv *env, jclass that, jint arg0) { jobject rc = 0; OS_NATIVE_ENTER(env, that, JNIGetObject_FUNC); rc = (jobject)arg0; OS_NATIVE_EXIT(env, that, JNIGetObject_FUNC); return rc; }
JNIEXPORT jintLong JNICALL OS_NATIVE(pangoLayoutNewProc_1CALLBACK) (JNIEnv *env, jclass that, jintLong arg0) { jintLong rc = 0; OS_NATIVE_ENTER(env, that, pangoLayoutNewProc_1CALLBACK_FUNC); superPangoLayoutNewProc = arg0; rc = (jintLong)pangoLayoutNewProc; OS_NATIVE_EXIT(env, that, pangoLayoutNewProc_1CALLBACK_FUNC); return rc; }
JNIEXPORT void JNICALL OS_NATIVE(CGAffineTransformMake) (JNIEnv *env, jclass that, jfloat arg0, jfloat arg1, jfloat arg2, jfloat arg3, jfloat arg4, jfloat arg5, jfloatArray arg6) { jfloat *lparg6=NULL; OS_NATIVE_ENTER(env, that, CGAffineTransformMake_FUNC); if (arg6) if ((lparg6 = (*env)->GetFloatArrayElements(env, arg6, NULL)) == NULL) goto fail; *(CGAffineTransform *)lparg6 = CGAffineTransformMake(arg0, arg1, arg2, arg3, arg4, arg5); fail: if (arg6 && lparg6) (*env)->ReleaseFloatArrayElements(env, arg6, lparg6, 0); OS_NATIVE_EXIT(env, that, CGAffineTransformMake_FUNC); }
JNIEXPORT void JNICALL OS_NATIVE(QDPictGetBounds) (JNIEnv *env, jclass that, jint arg0, jobject arg1) { CGRect _arg1, *lparg1=NULL; OS_NATIVE_ENTER(env, that, QDPictGetBounds_FUNC); if (arg1) if ((lparg1 = getCGRectFields(env, arg1, &_arg1)) == NULL) goto fail; *lparg1 = QDPictGetBounds((QDPictRef)arg0); fail: if (arg1 && lparg1) setCGRectFields(env, arg1, lparg1); OS_NATIVE_EXIT(env, that, QDPictGetBounds_FUNC); }
JNIEXPORT void JNICALL OS_NATIVE(CGPathGetCurrentPoint) (JNIEnv *env, jclass that, jint arg0, jobject arg1) { CGPoint _arg1, *lparg1=NULL; OS_NATIVE_ENTER(env, that, CGPathGetCurrentPoint_FUNC); if (arg1) if ((lparg1 = getCGPointFields(env, arg1, &_arg1)) == NULL) goto fail; *lparg1 = CGPathGetCurrentPoint((CGPathRef)arg0); fail: if (arg1 && lparg1) setCGPointFields(env, arg1, lparg1); OS_NATIVE_EXIT(env, that, CGPathGetCurrentPoint_FUNC); }
JNIEXPORT void JNICALL OS_NATIVE(CGDisplayBounds) (JNIEnv *env, jclass that, jint arg0, jobject arg1) { CGRect _arg1, *lparg1=NULL; OS_NATIVE_ENTER(env, that, CGDisplayBounds_FUNC); if (arg1) if ((lparg1 = getCGRectFields(env, arg1, &_arg1)) == NULL) goto fail; *lparg1 = CGDisplayBounds((CGDirectDisplayID)arg0); fail: if (arg1 && lparg1) setCGRectFields(env, arg1, lparg1); OS_NATIVE_EXIT(env, that, CGDisplayBounds_FUNC); }
JNIEXPORT void JNICALL OS_NATIVE(CGContextGetPathBoundingBox) (JNIEnv *env, jclass that, jint arg0, jobject arg1) { CGRect _arg1, *lparg1=NULL; OS_NATIVE_ENTER(env, that, CGContextGetPathBoundingBox_FUNC); if (arg1) if ((lparg1 = getCGRectFields(env, arg1, &_arg1)) == NULL) goto fail; *lparg1 = CGContextGetPathBoundingBox((CGContextRef)arg0); fail: if (arg1 && lparg1) setCGRectFields(env, arg1, lparg1); OS_NATIVE_EXIT(env, that, CGContextGetPathBoundingBox_FUNC); }
JNIEXPORT void JNICALL OS_NATIVE(CGContextGetCTM) (JNIEnv *env, jclass that, jint arg0, jfloatArray arg1) { jfloat *lparg1=NULL; OS_NATIVE_ENTER(env, that, CGContextGetCTM_FUNC); if (arg1) if ((lparg1 = (*env)->GetFloatArrayElements(env, arg1, NULL)) == NULL) goto fail; *(CGAffineTransform *)lparg1 = CGContextGetCTM((CGContextRef)arg0); fail: if (arg1 && lparg1) (*env)->ReleaseFloatArrayElements(env, arg1, lparg1, 0); OS_NATIVE_EXIT(env, that, CGContextGetCTM_FUNC); }
JNIEXPORT void JNICALL OS_NATIVE(CGAffineTransformInvert) (JNIEnv *env, jclass that, jfloatArray arg0, jfloatArray arg1) { jfloat *lparg0=NULL; jfloat *lparg1=NULL; OS_NATIVE_ENTER(env, that, CGAffineTransformInvert_FUNC); if (arg0) if ((lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL)) == NULL) goto fail; if (arg1) if ((lparg1 = (*env)->GetFloatArrayElements(env, arg1, NULL)) == NULL) goto fail; *(CGAffineTransform *)lparg1 = CGAffineTransformInvert(*(CGAffineTransform *)lparg0); fail: if (arg1 && lparg1) (*env)->ReleaseFloatArrayElements(env, arg1, lparg1, 0); if (arg0 && lparg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, JNI_ABORT); OS_NATIVE_EXIT(env, that, CGAffineTransformInvert_FUNC); }
JNIEXPORT void JNICALL OS_NATIVE(CGAffineTransformTranslate) (JNIEnv *env, jclass that, jfloatArray arg0, jfloat arg1, jfloat arg2, jfloatArray arg3) { jfloat *lparg0=NULL; jfloat *lparg3=NULL; OS_NATIVE_ENTER(env, that, CGAffineTransformTranslate_FUNC); if (arg0) if ((lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL)) == NULL) goto fail; if (arg3) if ((lparg3 = (*env)->GetFloatArrayElements(env, arg3, NULL)) == NULL) goto fail; *(CGAffineTransform *)lparg3 = CGAffineTransformTranslate(*(CGAffineTransform *)lparg0, arg1, arg2); fail: if (arg3 && lparg3) (*env)->ReleaseFloatArrayElements(env, arg3, lparg3, 0); if (arg0 && lparg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, JNI_ABORT); OS_NATIVE_EXIT(env, that, CGAffineTransformTranslate_FUNC); }
JNIEXPORT void JNICALL OS_NATIVE(CGRectUnion) (JNIEnv *env, jclass that, jobject arg0, jobject arg1, jobject arg2) { CGRect _arg0, *lparg0=NULL; CGRect _arg1, *lparg1=NULL; CGRect _arg2, *lparg2=NULL; OS_NATIVE_ENTER(env, that, CGRectUnion_FUNC); if (arg0) if ((lparg0 = getCGRectFields(env, arg0, &_arg0)) == NULL) goto fail; if (arg1) if ((lparg1 = getCGRectFields(env, arg1, &_arg1)) == NULL) goto fail; if (arg2) if ((lparg2 = &_arg2) == NULL) goto fail; *lparg2 = CGRectUnion(*lparg0, *lparg1); fail: if (arg2 && lparg2) setCGRectFields(env, arg2, lparg2); OS_NATIVE_EXIT(env, that, CGRectUnion_FUNC); }
JNIEXPORT void JNICALL OS_NATIVE(CGSizeApplyAffineTransform) (JNIEnv *env, jclass that, jobject arg0, jfloatArray arg1, jobject arg2) { CGSize _arg0, *lparg0=NULL; jfloat *lparg1=NULL; CGSize _arg2, *lparg2=NULL; OS_NATIVE_ENTER(env, that, CGSizeApplyAffineTransform_FUNC); if (arg0) if ((lparg0 = getCGSizeFields(env, arg0, &_arg0)) == NULL) goto fail; if (arg1) if ((lparg1 = (*env)->GetFloatArrayElements(env, arg1, NULL)) == NULL) goto fail; if (arg2) if ((lparg2 = getCGSizeFields(env, arg2, &_arg2)) == NULL) goto fail; *(CGSize *)lparg2 = CGSizeApplyAffineTransform(*(CGSize *)lparg0, *(CGAffineTransform *)lparg1); fail: if (arg2 && lparg2) setCGSizeFields(env, arg2, lparg2); if (arg1 && lparg1) (*env)->ReleaseFloatArrayElements(env, arg1, lparg1, 0); OS_NATIVE_EXIT(env, that, CGSizeApplyAffineTransform_FUNC); }
JNIEXPORT void JNICALL OS_NATIVE(NSIntersectionRect) (JNIEnv *env, jclass that, jobject arg0, jobject arg1, jobject arg2) { NSRect _arg0, *lparg0=NULL; NSRect _arg1, *lparg1=NULL; NSRect _arg2, *lparg2=NULL; OS_NATIVE_ENTER(env, that, NSIntersectionRect_FUNC); if (arg0) if ((lparg0 = getNSRectFields(env, arg0, &_arg0)) == NULL) goto fail; if (arg1) if ((lparg1 = getNSRectFields(env, arg1, &_arg1)) == NULL) goto fail; if (arg2) if ((lparg2 = getNSRectFields(env, arg2, &_arg2)) == NULL) goto fail; *lparg0 = NSIntersectionRect(*lparg1, *lparg2); fail: if (arg2 && lparg2) setNSRectFields(env, arg2, lparg2); if (arg1 && lparg1) setNSRectFields(env, arg1, lparg1); if (arg0 && lparg0) setNSRectFields(env, arg0, lparg0); OS_NATIVE_EXIT(env, that, NSIntersectionRect_FUNC); }
JNIEXPORT SWT_PTR JNICALL OS_NATIVE(_1gtk_1file_1chooser_1dialog_1new) (JNIEnv *env, jclass that, jbyteArray arg0, SWT_PTR arg1, jint arg2, SWT_PTR arg3, jint arg4, SWT_PTR arg5, jint arg6, SWT_PTR arg7) { jbyte *lparg0=NULL; SWT_PTR rc = 0; OS_NATIVE_ENTER(env, that, _1gtk_1file_1chooser_1dialog_1new_FUNC); if (arg0) if ((lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL)) == NULL) goto fail; /* rc = (SWT_PTR)gtk_file_chooser_dialog_new(lparg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); */ { static int initialized = 0; static void *handle = NULL; /* * On AMD64, it is critical that functions which have a variable number of * arguments, indicated by '...', include the '...' in their prototype. This * changes the calling convention, and leaving it out will cause crashes. * * For some reason, we must also explicitly declare all of the arguments we * are passing in, otherwise it crashes. */ /* typedef SWT_PTR (*FPTR)(jbyte *, SWT_PTR, jint, SWT_PTR, ...); */ typedef SWT_PTR (*FPTR)(jbyte *, SWT_PTR, jint, SWT_PTR, jint, SWT_PTR, jint, SWT_PTR, ...); static FPTR fptr; rc = 0; if (!initialized) { if (!handle) handle = dlopen(gtk_file_chooser_dialog_new_LIB, RTLD_LAZY); if (handle) fptr = (FPTR)dlsym(handle, "gtk_file_chooser_dialog_new"); initialized = 1; } if (fptr) { rc = (SWT_PTR)(*fptr)(lparg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); } } fail: if (arg0 && lparg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0); OS_NATIVE_EXIT(env, that, _1gtk_1file_1chooser_1dialog_1new_FUNC); return rc; }
JNIEXPORT void JNICALL OS_NATIVE(_1gtk_1cell_1layout_1set_1attributes) (JNIEnv *env, jclass that, SWT_PTR arg0, SWT_PTR arg1, jbyteArray arg2, jint arg3, SWT_PTR arg4) { jbyte *lparg2=NULL; OS_NATIVE_ENTER(env, that, _1gtk_1cell_1layout_1set_1attributes_FUNC); if (arg2) if ((lparg2 = (*env)->GetByteArrayElements(env, arg2, NULL)) == NULL) goto fail; /* gtk_cell_layout_set_attributes(arg0, arg1, lparg2, arg3, arg4); */ { static int initialized = 0; static void *handle = NULL; /* * On AMD64, it is critical that functions which have a variable number of * arguments, indicated by '...', include the '...' in their prototype. This * changes the calling convention, and leaving it out will cause crashes. * * For some reason, we must also explicitly declare all of the arguments we * are passing in, otherwise it crashes. */ /* typedef void (*FPTR)(SWT_PTR, SWT_PTR, ...); */ typedef void (*FPTR)(SWT_PTR, SWT_PTR, jbyte *, jint, SWT_PTR, ...); static FPTR fptr; if (!initialized) { if (!handle) handle = dlopen(gtk_cell_layout_set_attributes_LIB, RTLD_LAZY); if (handle) fptr = (FPTR)dlsym(handle, "gtk_cell_layout_set_attributes"); initialized = 1; } if (fptr) { (*fptr)(arg0, arg1, lparg2, arg3, arg4); } } fail: if (arg2 && lparg2) (*env)->ReleaseByteArrayElements(env, arg2, lparg2, 0); OS_NATIVE_EXIT(env, that, _1gtk_1cell_1layout_1set_1attributes_FUNC); }