dengzedong
3 天以前 074eb5598ca71283122392a8d71c6bff08326672
iailab-module-model/iailab-module-model-biz/src/main/resources/template/cpp.vm
@@ -17,7 +17,21 @@
   {
      PyGILThreadLock lock;
      PyObject* pModule = create_py_module("${pyModule}.${pyName}");
      jclass hashmapClass = env->FindClass("java/util/HashMap");
      jmethodID getMID = env->GetMethodID(hashmapClass, "get", "(Ljava/lang/Object;)Ljava/lang/Object;");
      jstring keyJString = env->NewStringUTF("pyFile");
      jobject javaValueObj = env->CallObjectMethod(settings, getMID, keyJString);
      jstring javaStringValue = (jstring)javaValueObj;
      const char* strValue = env->GetStringUTFChars(javaStringValue, NULL);
      //*************导入模型******************
      PyObject* pModule = create_py_module(strValue);
      // 释放java占用内存
      env->ReleaseStringUTFChars(javaStringValue, strValue);
      env->DeleteLocalRef(javaStringValue);
      env->DeleteLocalRef(javaValueObj);
      env->DeleteLocalRef(keyJString);
      env->DeleteLocalRef(hashmapClass);
      if (pModule == NULL)
      {
         cout << "model error" << endl;
@@ -80,34 +94,17 @@
         cout << "ConvertPydictToJhmap error" << endl;
         throw "函数返回值异常!";
      }
      /*delete pModule;
      pModule = nullptr;
      delete pModule;
      delete pFunc;
      pFunc = nullptr;
      delete pFunc;
      cout << "clear_py_memory" << endl;
      Py_XDECREF(pFunc);
#{foreach} ($column in [1..$entity.dataLength])
      delete[] data_${column};
      data_${column} = nullptr;
      delete data_${column};
      Py_XDECREF(data_${column});
#{end}
#{if}($entity.model==1)
      delete model_path;
      model_path = nullptr;
      delete model_path;
      Py_XDECREF(model_path);
#{end}
      delete settings_1;
      settings_1 = nullptr;
      delete settings_1;
      delete[] pArg;
      pArg = nullptr;
      delete pArg;*/
      Py_XDECREF(settings_1);
      Py_XDECREF(pArg);
      Py_XDECREF(pReturn);
      return result;
   }
   catch (const char* msg)