Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'v3_9_x'
[simgrid.git] / src / jxbt_utilities.h
index 08bd391..4752c7c 100644 (file)
@@ -1,6 +1,6 @@
 /* Various JNI helper functions                                             */
 
-/* Copyright (c) 2007, 2008, 2009, 2010. The SimGrid Team.
+/* Copyright (c) 2007-2012. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -53,18 +53,20 @@ jfieldID jxbt_get_sfield(JNIEnv * env, const char *classname,
 /* ***************** */
 
 #define jxbt_check_res(fun, res, allowed_exceptions, detail) do {\
-    if (res != MSG_OK && res | allowed_exceptions) { \
-      xbt_die(bprintf("%s failed with error code %d, which is not an allowed exception. Please fix me.",fun,res)); \
+    if (res != MSG_OK && (res | allowed_exceptions)) { \
+      xbt_die("%s failed with error code %d, which is not an allowed exception. Please fix me.",fun,res); \
     } else if (res == MSG_HOST_FAILURE) { \
       jxbt_throw_host_failure(env, detail); \
     } else if (res == MSG_TRANSFER_FAILURE) { \
       jxbt_throw_transfer_failure(env,detail); \
     } else if (res == MSG_TIMEOUT) { \
       jxbt_throw_time_out_failure(env,detail); \
-    } else if (res == MSG_TASK_CANCELLED){ \
+    } else if (res == MSG_TASK_CANCELED){ \
       jxbt_throw_task_cancelled(env,detail); \
    } } while (0)
 
+/* Throws an exception according to its name */
+void jxbt_throw_by_name(JNIEnv * env, const char *name, char *msg);
 /** Thrown on internal error of this layer, or on problem with JNI */
 void jxbt_throw_jni(JNIEnv * env, const char *msg);
 /** Thrown when using an object not bound to a native one where it should, or reverse (kinda JNI issue) */