diff --git a/addons/libRoadrunner/src/librr_intracellular.cpp b/addons/libRoadrunner/src/librr_intracellular.cpp index abb3182ee..e1dde64b1 100644 --- a/addons/libRoadrunner/src/librr_intracellular.cpp +++ b/addons/libRoadrunner/src/librr_intracellular.cpp @@ -569,17 +569,18 @@ void RoadRunnerIntracellular::initialize_intracellular_from_pugixml(pugi::xml_no node_map = node_map.next_sibling("map"); } - validate_mappings(new_input_mappings); - validate_mappings(new_output_mappings); + validate_mappings(new_input_mappings, true); + validate_mappings(new_output_mappings, false); input_mappings = std::move(new_input_mappings); output_mappings = std::move(new_output_mappings); } -void validate_mappings(std::vector mappings) +validate_mappings(std::vector mappings, bool is_inputs) { + if (mappings.empty()) + { return; } std::vector values_already_set; - bool is_inputs = mappings[0]->io_type=="input"; std::string name_to_add; for (auto mapping : mappings) { diff --git a/addons/libRoadrunner/src/librr_intracellular.h b/addons/libRoadrunner/src/librr_intracellular.h index a9eaf0097..ac7276989 100644 --- a/addons/libRoadrunner/src/librr_intracellular.h +++ b/addons/libRoadrunner/src/librr_intracellular.h @@ -51,7 +51,7 @@ bool is_physicell_phenotype_token(const std::string& name); MappingFunction select_phenotype_by_token_inputter(const std::string& name, const std::string& sbml_species); MappingFunction select_phenotype_by_token_outputter(const std::string& name, const std::string& sbml_species); -void validate_mappings(std::vector mappings); +validate_mappings(std::vector mappings, bool is_inputs); std::vector parse_ctr_token(const std::string &name); void throw_invalid_ctr_token(const std::string& name);