From bab22f696b433667874aa2ec2020f4717a47b0e7 Mon Sep 17 00:00:00 2001 From: Ioannis Tsakpinis Date: Sun, 10 Jul 2011 10:26:36 +0000 Subject: [PATCH] Merge preparation. --- src/java/org/lwjgl/opencl/CallbackUtil.java | 9 ++++----- src/native/common/extcl.h | 9 +-------- src/native/common/org_lwjgl_opencl_CallbackUtil.c | 2 +- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/java/org/lwjgl/opencl/CallbackUtil.java b/src/java/org/lwjgl/opencl/CallbackUtil.java index 531e9bd0..98f9a4f5 100644 --- a/src/java/org/lwjgl/opencl/CallbackUtil.java +++ b/src/java/org/lwjgl/opencl/CallbackUtil.java @@ -107,14 +107,13 @@ final class CallbackUtil { * @param user_data the global reference pointer */ static void registerCallback(final CLContext context, final long user_data) { - if ( context.getPointerUnsafe() == 0 ) { - if ( user_data != 0 ) - deleteGlobalRef(user_data); + if ( user_data == 0 ) return; - } - if ( user_data != 0 ) + if ( context.isValid() ) contextUserData.put(context, user_data); + else + deleteGlobalRef(user_data); } /** diff --git a/src/native/common/extcl.h b/src/native/common/extcl.h index 7b233027..053df19d 100644 --- a/src/native/common/extcl.h +++ b/src/native/common/extcl.h @@ -59,18 +59,11 @@ typedef GLsync cl_GLsync; #define CL_CALLBACK #endif -// TODO: This is a bug in current CL implementations (AMD's only?), remove when fixed. (used for cl_native_kernel_func) -#if defined(_WIN32) - #define CL_USER_FUNC_CALLBACK __cdecl -#else - #define CL_USER_FUNC_CALLBACK CL_CALLBACK -#endif - typedef void (CL_CALLBACK * cl_create_context_callback)(const char *errinfo, const void *private_info, size_t cb, void *user_data); typedef void (CL_CALLBACK * cl_mem_object_destructor_callback)(cl_mem memobj, void *user_data); typedef void (CL_CALLBACK * cl_build_program_callback)(cl_program program, void *user_data); typedef void (CL_CALLBACK * cl_event_callback)(cl_event event, cl_int event_command_exec_status, void *user_data); -typedef void (CL_USER_FUNC_CALLBACK * cl_native_kernel_func)(void *args); +typedef void (CL_CALLBACK * cl_native_kernel_func)(void *args); // -----------------[ Cross-platform functions ]----------------- diff --git a/src/native/common/org_lwjgl_opencl_CallbackUtil.c b/src/native/common/org_lwjgl_opencl_CallbackUtil.c index b9015ff8..c721a9c2 100644 --- a/src/native/common/org_lwjgl_opencl_CallbackUtil.c +++ b/src/native/common/org_lwjgl_opencl_CallbackUtil.c @@ -142,7 +142,7 @@ JNIEXPORT jlong JNICALL Java_org_lwjgl_opencl_CallbackUtil_getBuildProgramCallba // ----------------- [ NATIVE KERNEL CALLBACK ] ----------------- -static void CL_USER_FUNC_CALLBACK nativeKernelCallback(void *args) { +static void CL_CALLBACK nativeKernelCallback(void *args) { JNIEnv *env = attachCurrentThread(); jobject user_func = (jobject)(intptr_t)*(jlong *)args; jint num_mem_objects = *(jint *)((char *)args + 8);