-/* Copyright (c) 2007-2021. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2007-2022. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
#include "simgrid/plugins/file_system.h"
#include "simgrid/plugins/live_migration.h"
#include "simgrid/plugins/load.h"
-#include "simgrid/simix.h"
+#include "simgrid/s4u/Actor.hpp"
#include "simgrid/s4u/Host.hpp"
-#include "src/simix/smx_private.hpp"
-
#include "jmsg.hpp"
#include "jmsg_as.hpp"
#include "jmsg_host.h"
args.emplace_back("java");
for (int index = 1; index < argc; index++) {
auto jval = (jstring)env->GetObjectArrayElement(jargs, index - 1);
- const char* tmp = env->GetStringUTFChars(jval, nullptr);
- args.emplace_back(tmp);
- env->ReleaseStringUTFChars(jval, tmp);
+ jstring_wrapper tmp(env, jval);
+ args.emplace_back(tmp.value);
}
std::unique_ptr<char* []> argv(new char*[argc + 1]);
JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_createEnvironment(JNIEnv* env, jclass, jstring jplatformFile)
{
- const char* platformFile = env->GetStringUTFChars(jplatformFile, nullptr);
-
+ jstring_wrapper platformFile(env, jplatformFile);
simgrid_load_platform(platformFile);
-
- env->ReleaseStringUTFChars(jplatformFile, platformFile);
}
JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Msg_environmentGetRoutingRoot(JNIEnv* env, jclass)
JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_debug(JNIEnv* env, jclass, jstring js)
{
- const char* s = env->GetStringUTFChars(js, nullptr);
- XBT_DEBUG("%s", s);
- env->ReleaseStringUTFChars(js, s);
+ jstring_wrapper s(env, js);
+ XBT_DEBUG("%s", s.value);
}
JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_verb(JNIEnv* env, jclass, jstring js)
{
- const char* s = env->GetStringUTFChars(js, nullptr);
- XBT_VERB("%s", s);
- env->ReleaseStringUTFChars(js, s);
+ jstring_wrapper s(env, js);
+ XBT_VERB("%s", s.value);
}
JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_info(JNIEnv* env, jclass, jstring js)
{
- const char* s = env->GetStringUTFChars(js, nullptr);
- XBT_INFO("%s", s);
- env->ReleaseStringUTFChars(js, s);
+ jstring_wrapper s(env, js);
+ XBT_INFO("%s", s.value);
}
JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_warn(JNIEnv* env, jclass, jstring js)
{
- const char* s = env->GetStringUTFChars(js, nullptr);
- XBT_WARN("%s", s);
- env->ReleaseStringUTFChars(js, s);
+ jstring_wrapper s(env, js);
+ XBT_WARN("%s", s.value);
}
JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_error(JNIEnv* env, jclass, jstring js)
{
- const char* s = env->GetStringUTFChars(js, nullptr);
- XBT_ERROR("%s", s);
- env->ReleaseStringUTFChars(js, s);
+ jstring_wrapper s(env, js);
+ XBT_ERROR("%s", s.value);
}
JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_critical(JNIEnv* env, jclass, jstring js)
{
- const char* s = env->GetStringUTFChars(js, nullptr);
- XBT_CRITICAL("%s", s);
- env->ReleaseStringUTFChars(js, s);
+ jstring_wrapper s(env, js);
+ XBT_CRITICAL("%s", s.value);
}
static void java_main(int argc, char* argv[]);
JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_deployApplication(JNIEnv* env, jclass, jstring jdeploymentFile)
{
- const char* deploymentFile = env->GetStringUTFChars(jdeploymentFile, nullptr);
+ jstring_wrapper deploymentFile(env, jdeploymentFile);
simgrid_register_default(java_main);
simgrid_load_deployment(deploymentFile);
if (env->ExceptionOccurred()) {
XBT_DEBUG("Something went wrong in this Java actor, forget about it.");
env->ExceptionClear();
- XBT_ATTRIB_UNUSED jint error = __java_vm->DetachCurrentThread();
- xbt_assert(error == JNI_OK, "Cannot detach failing thread");
+ xbt_assert(__java_vm->DetachCurrentThread() == JNI_OK, "Cannot detach failing thread");
simgrid::ForcefulKillException::do_throw();
}
}