void fmi1_xml_parse_free_context(fmi1_xml_parser_context_t *context) { if(!context) return; if(context->modelDescription) fmi1_xml_clear_model_description(context->modelDescription); if(context->parser) { XML_ParserFree(context->parser); context->parser = 0; } fmi1_xml_free_parse_buffer(context); if(context->attrMap) { jm_vector_free(jm_named_ptr)(context->attrMap); context->attrMap = 0; } if(context->elmMap) { jm_vector_free(fmi1_xml_element_handle_map_t)(context->elmMap); context->elmMap = 0; } if(context->attrBuffer) { jm_vector_free(jm_string)(context->attrBuffer); context->attrBuffer = 0; } jm_stack_free_data(int)(& context->elmStack ); jm_vector_free_data(char)( &context->elmData ); jm_vector_free_data(jm_voidp)(&context->directDependencyBuf); jm_vector_foreach(jm_string)(&context->directDependencyStringsStore, (void(*)(jm_string))context->callbacks->free); jm_vector_free_data(jm_string)(&context->directDependencyStringsStore); context->callbacks->free(context); }
void fmi1_xml_clear_model_description( fmi1_xml_model_description_t* md) { md->status = fmi1_xml_model_description_enu_empty; jm_vector_free_data(char)(&md->fmi1_xml_standard_version); jm_vector_free_data(char)(&md->modelName); jm_vector_free_data(char)(&md->modelIdentifier); jm_vector_free_data(char)(&md->GUID); jm_vector_free_data(char)(&md->description); jm_vector_free_data(char)(&md->author); jm_vector_free_data(char)(&md->version); jm_vector_free_data(char)(&md->generationTool); jm_vector_free_data(char)(&md->generationDateAndTime); md->namingConvension = fmi1_naming_enu_flat; md->numberOfContinuousStates = 0; md->numberOfEventIndicators = 0; md->defaultExperimentStartTime = 0; md->defaultExperimentStopTime = 0; md->defaultExperimentTolerance = 0; jm_vector_foreach(jm_voidp)(&md->vendorList, (void(*)(void*))fmi1_xml_vendor_free); jm_vector_free_data(jm_voidp)(&md->vendorList); jm_named_vector_free_data(&md->unitDefinitions); jm_named_vector_free_data(&md->displayUnitDefinitions); fmi1_xml_free_type_definitions_data(&md->typeDefinitions); jm_vector_foreach(jm_named_ptr)(&md->variablesByName, fmi1_xml_free_direct_dependencies); jm_named_vector_free_data(&md->variablesByName); if(md->variablesOrigOrder) { jm_vector_free(jm_voidp)(md->variablesOrigOrder); md->variablesOrigOrder = 0; } if(md->variablesByVR) { jm_vector_free(jm_voidp)(md->variablesByVR); md->variablesByVR = 0; } if(md->inputVariables) { jm_vector_free(jm_voidp)(md->inputVariables); md->inputVariables = 0; } if(md->outputVariables) { jm_vector_free(jm_voidp)(md->outputVariables); md->outputVariables = 0; } jm_vector_foreach(jm_string)(&md->descriptions, (void(*)(const char*))md->callbacks->free); jm_vector_free_data(jm_string)(&md->descriptions); jm_vector_foreach(jm_string)(&md->additionalModels, (void(*)(const char*))md->callbacks->free); jm_vector_free_data(jm_string)(&md->additionalModels); jm_vector_free_data(char)(&md->entryPoint); jm_vector_free_data(char)(&md->mimeType); }