diff --git a/Compiler/Template/CodegenC.tpl b/Compiler/Template/CodegenC.tpl index 5e93c636922..64c3747c003 100644 --- a/Compiler/Template/CodegenC.tpl +++ b/Compiler/Template/CodegenC.tpl @@ -128,7 +128,6 @@ end translateModel; <%variableDefinitions(modelInfo, timeEvents)%><%functions |> fn hasindex i0 => '#define <%functionName(fn,false)%>_index <%i0%>'; separator="\n"%> - extern void <%symbolName(modelNamePrefixStr,"callExternalObjectConstructors")%>(DATA *data, threadData_t *threadData); extern void <%symbolName(modelNamePrefixStr,"callExternalObjectDestructors")%>(DATA *_data, threadData_t *threadData); #if !defined(OMC_NUM_NONLINEAR_SYSTEMS) || OMC_NUM_NONLINEAR_SYSTEMS>0 <% if intGt(varInfo.numNonLinearSystems, 0) then 'extern void <%symbolName(modelNamePrefixStr,"initialNonLinearSystem")%>(int nNonLinearSystems, NONLINEAR_SYSTEM_DATA *data);' %> @@ -479,8 +478,6 @@ template simulationFile_exo(SimCode simCode) extern "C" { #endif - <%functionCallExternalObjectConstructors(extObjInfo, modelNamePrefix(simCode))%> - <%functionCallExternalObjectDestructors(extObjInfo, modelNamePrefix(simCode))%> #if defined(__cplusplus) } @@ -1039,7 +1036,6 @@ template simulationFile(SimCode simCode, String guid, Boolean isModelExchangeFMU <% if isModelExchangeFMU then "NULL" else '(int (*)(DATA *, threadData_t *, void *)) <%symbolName(modelNamePrefixStr,"performSimulation")%>'%>, <% if isModelExchangeFMU then "NULL" else '(int (*)(DATA *, threadData_t *, void *)) <%symbolName(modelNamePrefixStr,"performQSSSimulation")%>'%>, <% if isModelExchangeFMU then "NULL" else '<%symbolName(modelNamePrefixStr,"updateContinuousSystem")%>'%>, - <%symbolName(modelNamePrefixStr,"callExternalObjectConstructors")%>, <%symbolName(modelNamePrefixStr,"callExternalObjectDestructors")%>, <%if intEq(varInfo.numNonLinearSystems,0) then "NULL" else symbolName(modelNamePrefixStr,"initialNonLinearSystem")%>, <%if intEq(varInfo.numLinearSystems,0) then "NULL" else symbolName(modelNamePrefixStr,"initialLinearSystem")%>, @@ -1556,41 +1552,6 @@ template aliasVarNameType(AliasVariable var) end match end aliasVarNameType; -template functionCallExternalObjectConstructors(ExtObjInfo extObjInfo, String modelNamePrefix) - "Generates function in simulation file." -::= - match extObjInfo - case EXTOBJINFO(__) then - let &auxFunction = buffer "" - let &varDecls = buffer "" - let ctorCalls = (vars |> var as SIMVAR(initialValue=SOME(exp)) => - let &preExp = buffer "" - let arg = daeExp(exp, contextOther, &preExp, &varDecls, &auxFunction) - /* Restore the memory state after each object has been initialized. Then we can - * initalize a really large number of external objects that play with strings :) - */ - << - <%preExp%> - <%cref(var.name)%> = <%arg%>; - >> - ;separator="\n") - - << - <%auxFunction%> - /* Has to be performed after _init.xml file has been read */ - void <%symbolName(modelNamePrefix,"callExternalObjectConstructors")%>(DATA *data, threadData_t *threadData) - { - <%varDecls%> - /* data->simulationInfo->extObjs = NULL; */ - infoStreamPrint(LOG_DEBUG, 0, "call external Object Constructors"); - <%ctorCalls%> - <%aliases |> (var1, var2) => '<%cref(var1)%> = <%cref(var2)%>;' ;separator="\n"%> - infoStreamPrint(LOG_DEBUG, 0, "call external Object Constructors finished"); - } - >> - end match -end functionCallExternalObjectConstructors; - template functionCallExternalObjectDestructors(ExtObjInfo extObjInfo, String modelNamePrefix) "Generates function in simulation file." ::= diff --git a/SimulationRuntime/c/openmodelica_func.h b/SimulationRuntime/c/openmodelica_func.h index 1a704409c05..c0e7cc1edf5 100644 --- a/SimulationRuntime/c/openmodelica_func.h +++ b/SimulationRuntime/c/openmodelica_func.h @@ -58,8 +58,6 @@ struct OpenModelicaGeneratedFunctionCallbacks { int (*performSimulation)(DATA* data, threadData_t*, void* solverInfo); int (*performQSSSimulation)(DATA* data, threadData_t*, void* solverInfo); void (*updateContinuousSystem)(DATA *data, threadData_t*); -/* Function for calling external object constructors */ -void (*callExternalObjectConstructors)(DATA *data, threadData_t*); /* Function for calling external object deconstructors */ void (*callExternalObjectDestructors)(DATA *_data, threadData_t*); diff --git a/SimulationRuntime/fmi/export/fmi1/fmu1_model_interface.c b/SimulationRuntime/fmi/export/fmi1/fmu1_model_interface.c index 711d2488168..c6f19930f33 100644 --- a/SimulationRuntime/fmi/export/fmi1/fmu1_model_interface.c +++ b/SimulationRuntime/fmi/export/fmi1/fmu1_model_interface.c @@ -197,9 +197,7 @@ fmiComponent fmiInstantiateModel(fmiString instanceName, fmiString GUID, fmiCall strcpy((char*)comp->GUID, (const char*)GUID); /* read input vars */ - //input_function(comp->fmuData); - /* initial sample and delay before initial the system */ - comp->fmuData->callback->callExternalObjectConstructors(comp->fmuData, comp->threadData); + /* input_function(comp->fmuData);*/ /* allocate memory for non-linear system solvers */ initializeNonlinearSystems(comp->fmuData, comp->threadData); /* allocate memory for non-linear system solvers */ diff --git a/SimulationRuntime/fmi/export/fmi2/fmu2_model_interface.c b/SimulationRuntime/fmi/export/fmi2/fmu2_model_interface.c index f75ea099f03..79063f84d85 100644 --- a/SimulationRuntime/fmi/export/fmi2/fmu2_model_interface.c +++ b/SimulationRuntime/fmi/export/fmi2/fmu2_model_interface.c @@ -373,9 +373,7 @@ fmi2Component fmi2Instantiate(fmi2String instanceName, fmi2Type fmuType, fmi2Str modelInfoInit(&(comp->fmuData->modelData->modelDataXml)); #endif /* read input vars */ - //input_function(comp->fmuData); - /* initial sample and delay before initial the system */ - comp->fmuData->callback->callExternalObjectConstructors(comp->fmuData, comp->threadData); + /* input_function(comp->fmuData); */ #if !defined(OMC_NUM_NONLINEAR_SYSTEMS) || OMC_NUM_NONLINEAR_SYSTEMS>0 /* allocate memory for non-linear system solvers */ initializeNonlinearSystems(comp->fmuData, comp->threadData); @@ -1282,4 +1280,3 @@ fmi2Status fmi2GetSpecificDerivatives(fmi2Component c, fmi2Real derivatives[], c return fmi2Error; } #endif -