From be8d84157753889400d54213af0471cbfb3c8cf1 Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Fri, 15 Jul 2011 17:36:26 +0000 Subject: [PATCH] Delete built in export filters on exit Originally committed to SVN as r5474. --- aegisub/src/ass_export_filter.cpp | 5 +++++ aegisub/src/ass_export_filter.h | 6 ++---- aegisub/src/main.cpp | 3 +++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/aegisub/src/ass_export_filter.cpp b/aegisub/src/ass_export_filter.cpp index 609d12cf5..c4ba3a45f 100644 --- a/aegisub/src/ass_export_filter.cpp +++ b/aegisub/src/ass_export_filter.cpp @@ -42,6 +42,7 @@ #include "ass_export_filter.h" #include "ass_file.h" +#include "utils.h" AssExportFilter::AssExportFilter(wxString const& name, wxString const& description, int priority) : name(name) @@ -93,3 +94,7 @@ FilterList *AssExportFilterChain::GetFilterList() { static FilterList instance; return &instance; } + +void AssExportFilterChain::Clear() { + delete_clear(*GetFilterList()); +} diff --git a/aegisub/src/ass_export_filter.h b/aegisub/src/ass_export_filter.h index 39f3d6b9b..4fdc38d8c 100644 --- a/aegisub/src/ass_export_filter.h +++ b/aegisub/src/ass_export_filter.h @@ -60,17 +60,15 @@ typedef std::list FilterList; class AssExportFilterChain { friend class AssExporter; - /// The list of registered filters - FilterList Filters; - /// Get the singleton instance static FilterList *GetFilterList(); - AssExportFilterChain() { } public: /// Register an export filter static void Register(AssExportFilter *filter); /// Unregister an export filter; must have been registered static void Unregister(AssExportFilter *filter); + /// Unregister and delete all export filters + static void Clear(); }; /// DOCME diff --git a/aegisub/src/main.cpp b/aegisub/src/main.cpp index 0a063303a..0f86e5dd2 100644 --- a/aegisub/src/main.cpp +++ b/aegisub/src/main.cpp @@ -339,6 +339,9 @@ int AegisubApp::OnExit() { #ifdef WITH_AUTOMATION delete global_scripts; #endif + + AssExportFilterChain::Clear(); + #ifdef _DEBUG delete emit_stdout; #endif