Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
that malloc is really useless
authorMartin Quinson <martin.quinson@loria.fr>
Tue, 21 Mar 2017 12:52:33 +0000 (13:52 +0100)
committerMartin Quinson <martin.quinson@loria.fr>
Tue, 21 Mar 2017 12:52:33 +0000 (13:52 +0100)
src/bindings/java/jmsg_task.cpp

index f3df891..b8ebf84 100644 (file)
@@ -327,11 +327,10 @@ JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Task_irecv(JNIEnv * env, jclass c
 JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Task_receiveBounded(JNIEnv* env, jclass cls, jstring jalias,
                                                                    jdouble jtimeout, jdouble rate)
 {
 JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Task_receiveBounded(JNIEnv* env, jclass cls, jstring jalias,
                                                                    jdouble jtimeout, jdouble rate)
 {
-  msg_task_t *task = xbt_new(msg_task_t,1);
-  *task = nullptr;
+  msg_task_t task = nullptr;
 
   const char *alias = env->GetStringUTFChars(jalias, 0);
 
   const char *alias = env->GetStringUTFChars(jalias, 0);
-  msg_error_t res   = MSG_task_receive_ext_bounded(task, alias, static_cast<double>(jtimeout), /*host*/ nullptr,
+  msg_error_t res   = MSG_task_receive_ext_bounded(&task, alias, static_cast<double>(jtimeout), /*host*/ nullptr,
                                                  static_cast<double>(rate));
   if (env->ExceptionOccurred())
     return nullptr;
                                                  static_cast<double>(rate));
   if (env->ExceptionOccurred())
     return nullptr;
@@ -339,17 +338,15 @@ JNIEXPORT jobject JNICALL Java_org_simgrid_msg_Task_receiveBounded(JNIEnv* env,
     jmsg_throw_status(env, res);
     return nullptr;
   }
     jmsg_throw_status(env, res);
     return nullptr;
   }
-  jobject jtask_global = (jobject) MSG_task_get_data(*task);
+  jobject jtask_global = (jobject)MSG_task_get_data(task);
 
   /* Convert the global ref into a local ref so that the JVM can free the stuff */
   jobject jtask_local = env->NewLocalRef(jtask_global);
   env->DeleteGlobalRef(jtask_global);
 
   /* Convert the global ref into a local ref so that the JVM can free the stuff */
   jobject jtask_local = env->NewLocalRef(jtask_global);
   env->DeleteGlobalRef(jtask_global);
-  MSG_task_set_data(*task, nullptr);
+  MSG_task_set_data(task, nullptr);
 
   env->ReleaseStringUTFChars(jalias, alias);
 
 
   env->ReleaseStringUTFChars(jalias, alias);
 
-  xbt_free(task);
-
   return (jobject) jtask_local;
 }
 
   return (jobject) jtask_local;
 }