diff options
Diffstat (limited to 'libs/ardour/export_profile_manager.cc')
-rw-r--r-- | libs/ardour/export_profile_manager.cc | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/libs/ardour/export_profile_manager.cc b/libs/ardour/export_profile_manager.cc index 7ff4282c74..08fdb96e0d 100644 --- a/libs/ardour/export_profile_manager.cc +++ b/libs/ardour/export_profile_manager.cc @@ -724,8 +724,20 @@ ExportProfileManager::load_formats () void ExportProfileManager::load_format_from_disk (std::string const & path) { - XMLTree const tree (path); - ExportFormatSpecPtr format = handler->add_format (*tree.root()); + XMLTree tree; + + if (!tree.read (path)) { + error << string_compose (_("Cannot load export format from %1"), path) << endmsg; + return; + } + + XMLNode* root = tree.root(); + if (!root) { + error << string_compose (_("Cannot export format read from %1"), path) << endmsg; + return; + } + + ExportFormatSpecPtr format = handler->add_format (*root); /* Handle id to filename mapping and don't add duplicates to list */ |