#include <locale.h>
-#include <simgrid/msg.h>
-#include <simgrid/simix.h>
-#include <simgrid/plugins/energy.h>
+#include "simgrid/msg.h"
+#include "simgrid/plugins/energy.h"
+#include "simgrid/simix.h"
-#include <simgrid/s4u/host.hpp>
+#include "simgrid/s4u/Host.hpp"
-#include <src/simix/smx_private.h>
+#include "src/simix/smx_private.h"
#include "jmsg_process.h"
#include "jmsg_as.h"
setlocale(LC_NUMERIC,"C");
if (jargs)
- argc = (int) env->GetArrayLength(jargs);
+ argc = static_cast<int>(env->GetArrayLength(jargs));
argc++;
argv = xbt_new(char *, argc + 1);
JAVA_HOST_LEVEL = simgrid::s4u::Host::extension_create(__JAVA_host_priv_free);
JAVA_STORAGE_LEVEL = xbt_lib_add_level(storage_lib, __JAVA_storage_priv_free);
- for (index = 0; index < argc; index++)
+ for (index = 0; index < argc - 1; index++) {
+ env->SetObjectArrayElement(jargs, index, (jstring)env->NewStringUTF(argv[index + 1]));
free(argv[index]);
-
+ }
+ free(argv[argc]);
free(argv);
}
JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Msg_environmentGetRoutingRoot(JNIEnv * env, jclass cls)
{
- msg_netzone_t as = MSG_environment_get_routing_root();
+ msg_netzone_t as = MSG_zone_get_root();
jobject jas = jnetzone_new_instance(env);
if (!jas) {
jxbt_throw_jni(env, "java As instantiation failed");
JNIEnv *env = get_current_thread_env();
simgrid::kernel::context::JavaContext* context = static_cast<simgrid::kernel::context::JavaContext*>(SIMIX_context_self());
context->jprocess = jprocess;
- smx_actor_t process = SIMIX_process_self();
- jprocess_bind(context->jprocess, process, env);
+ jprocess_bind(context->jprocess, MSG_process_self(), env);
- // Adrien, ugly path, just to bypass creation of context at low levels (i.e such as for the VM migration for instance)
- if (context->jprocess != nullptr)
- run_jprocess(env, context->jprocess);
+ run_jprocess(env, context->jprocess);
}
}}}