| | |
| | | { |
| | | |
| | | 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; |
| | |
| | | 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) |