void TAO_ArrayDef_i::destroy_element_type ( ) { ACE_TString element_path; this->repo_->config ()->get_string_value (this->section_key_, "element_path", element_path); ACE_Configuration_Section_Key element_key; this->repo_->config ()->expand_path (this->repo_->root_key (), element_path, element_key, 0); u_int kind = 0; this->repo_->config ()->get_integer_value (element_key, ACE_TEXT("def_kind"), kind); CORBA::DefinitionKind def_kind = TAO_IFR_Service_Utils::path_to_def_kind (element_path, this->repo_); switch (def_kind) { // These exist only as our elements, so the type should // be destroyed when we are destroyed, or when our element type // is mutated. case CORBA::dk_String: case CORBA::dk_Wstring: case CORBA::dk_Fixed: case CORBA::dk_Array: case CORBA::dk_Sequence: { TAO_IDLType_i *impl = this->repo_->select_idltype (def_kind); impl->section_key (element_key); impl->destroy_i (); break; } default: break; } }