diff --git a/SimulationRuntime/c/meta/meta_modelica.h b/SimulationRuntime/c/meta/meta_modelica.h index 068d944293..3cf6f0e3a5 100644 --- a/SimulationRuntime/c/meta/meta_modelica.h +++ b/SimulationRuntime/c/meta/meta_modelica.h @@ -209,8 +209,17 @@ static void* mmc_mk_rcon(double d) #endif return MMC_TAGPTR(p); } +static void* mmc_mk_modelica_array(base_array_t arr) +{ + base_array_t *cpy = mmc_alloc_words(sizeof(arr)/sizeof(void*) + 1); + memcpy(cpy, &arr, sizeof(base_array_t)); + clone_base_array_spec(&arr, cpy); + /* Note: The data is hopefully not stack-allocated and can be passed this way */ + return cpy; +} #else void* mmc_mk_rcon(double d); +void* mmc_mk_modelica_array(base_array_t); #endif #include "openmodelica.h" diff --git a/SimulationRuntime/c/meta/meta_modelica_data.h b/SimulationRuntime/c/meta/meta_modelica_data.h index 5ce6b4fb5f..865d0c2dec 100644 --- a/SimulationRuntime/c/meta/meta_modelica_data.h +++ b/SimulationRuntime/c/meta/meta_modelica_data.h @@ -229,7 +229,6 @@ typedef int mmc_switch_type; #define mmc_mk_integer mmc_mk_icon #define mmc_mk_boolean mmc_mk_bcon #define mmc_mk_real mmc_mk_rcon -void* mmc_mk_modelica_array(base_array_t); void mmc_catch_dummy_fn();