Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
no xbt_lib in java world + leak plug
[simgrid.git] / src / bindings / java / jmsg.cpp
index ec98fde..3a5392d 100644 (file)
@@ -39,7 +39,6 @@
 SG_BEGIN_DECL()
 
 int JAVA_HOST_LEVEL = -1;
 SG_BEGIN_DECL()
 
 int JAVA_HOST_LEVEL = -1;
-int JAVA_STORAGE_LEVEL = -1;
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(java);
 
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(java);
 
@@ -132,7 +131,6 @@ JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_init(JNIEnv * env, jclass cls, j
   MSG_init(&argc, argv);
 
   JAVA_HOST_LEVEL = simgrid::s4u::Host::extension_create(__JAVA_host_priv_free);
   MSG_init(&argc, argv);
 
   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 - 1; index++) {
     env->SetObjectArrayElement(jargs, index, (jstring)env->NewStringUTF(argv[index + 1]));
 
   for (index = 0; index < argc - 1; index++) {
     env->SetObjectArrayElement(jargs, index, (jstring)env->NewStringUTF(argv[index + 1]));
@@ -164,15 +162,8 @@ JNIEXPORT void JNICALL JNICALL Java_org_simgrid_msg_Msg_run(JNIEnv * env, jclass
   xbt_dynar_free(&hosts);
 
   /* Cleanup java storages */
   xbt_dynar_free(&hosts);
 
   /* Cleanup java storages */
-  xbt_dynar_t storages = MSG_storages_as_dynar();
-  if(!xbt_dynar_is_empty(storages)){
-    for (unsigned long index = 0; index < xbt_dynar_length(storages) - 1; index++) {
-      jobject jstorage = (jobject) xbt_lib_get_level(xbt_dynar_get_as(storages,index,msg_storage_t), JAVA_STORAGE_LEVEL);
-      if (jstorage)
-        jstorage_unref(env, jstorage);
-    }
-  }
-  xbt_dynar_free(&storages);
+  for (auto elm : java_storage_map)
+    jstorage_unref(env, elm.second);
 }
 
 JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_createEnvironment(JNIEnv * env, jclass cls, jstring jplatformFile)
 }
 
 JNIEXPORT void JNICALL Java_org_simgrid_msg_Msg_createEnvironment(JNIEnv * env, jclass cls, jstring jplatformFile)