diff --git a/aegisub/src/ass_export_filter.cpp b/aegisub/src/ass_export_filter.cpp index cf1afc5b5..7b6eaafcb 100644 --- a/aegisub/src/ass_export_filter.cpp +++ b/aegisub/src/ass_export_filter.cpp @@ -69,10 +69,11 @@ void AssExportFilterChain::Register(AssExportFilter *filter) { } void AssExportFilterChain::Unregister(AssExportFilter *filter) { - if (find(filters()->begin(), filters()->end(), filter) == filters()->end()) + auto it = remove(begin(*filters()), end(*filters()), filter); + if (it == end(*filters())) throw wxString::Format("Unregister export filter: name \"%s\" is not registered.", filter->name); - filters()->remove(filter); + filters()->pop_back(); } FilterList *AssExportFilterChain::filters() { diff --git a/aegisub/src/ass_export_filter.h b/aegisub/src/ass_export_filter.h index 658df6937..5b24a744d 100644 --- a/aegisub/src/ass_export_filter.h +++ b/aegisub/src/ass_export_filter.h @@ -35,8 +35,8 @@ #pragma once #ifndef AGI_PRE -#include #include +#include #include #include @@ -47,8 +47,7 @@ class AssExportFilter; namespace agi { struct Context; } -/// DOCME -typedef std::list FilterList; +typedef std::vector FilterList; /// DOCME /// @class AssExportFilterChain diff --git a/aegisub/src/ass_exporter.cpp b/aegisub/src/ass_exporter.cpp index f6ebe52cc..e19626921 100644 --- a/aegisub/src/ass_exporter.cpp +++ b/aegisub/src/ass_exporter.cpp @@ -45,11 +45,11 @@ #include #endif -static inline std::list::const_iterator filter_list_begin() { +static inline FilterList::const_iterator filter_list_begin() { return AssExportFilterChain::GetFilterList()->begin(); } -static inline std::list::const_iterator filter_list_end() { +static inline FilterList::const_iterator filter_list_end() { return AssExportFilterChain::GetFilterList()->end(); } diff --git a/aegisub/src/ass_exporter.h b/aegisub/src/ass_exporter.h index fe16e9a56..d27b13d0a 100644 --- a/aegisub/src/ass_exporter.h +++ b/aegisub/src/ass_exporter.h @@ -37,15 +37,15 @@ #include #include -#include #include +#include #endif class AssExportFilter; class AssFile; namespace agi { struct Context; } -typedef std::list FilterList; +typedef std::vector FilterList; /// DOCME /// @class AssExporter diff --git a/aegisub/src/dialog_style_manager.cpp b/aegisub/src/dialog_style_manager.cpp index 25dd559f7..10dff8fb9 100644 --- a/aegisub/src/dialog_style_manager.cpp +++ b/aegisub/src/dialog_style_manager.cpp @@ -401,9 +401,10 @@ void DialogStyleManager::OnCatalogDelete() { } void DialogStyleManager::OnCopyToStorage() { - std::list copied; wxArrayInt selections; int n = CurrentList->GetSelections(selections); + wxArrayString copied; + copied.reserve(n); for (int i = 0; i < n; i++) { wxString styleName = CurrentList->GetString(selections[i]); @@ -427,9 +428,10 @@ void DialogStyleManager::OnCopyToStorage() { } void DialogStyleManager::OnCopyToCurrent() { - std::list copied; wxArrayInt selections; int n = StorageList->GetSelections(selections); + wxArrayString copied; + copied.reserve(n); for (int i = 0; i < n; i++) { wxString styleName = StorageList->GetString(selections[i]); bool addStyle = true; diff --git a/aegisub/src/subtitle_format.cpp b/aegisub/src/subtitle_format.cpp index 51eaf1d23..a22fdd7ab 100644 --- a/aegisub/src/subtitle_format.cpp +++ b/aegisub/src/subtitle_format.cpp @@ -68,7 +68,7 @@ SubtitleFormat::SubtitleFormat(wxString const& name) } SubtitleFormat::~SubtitleFormat() { - formats.remove(this); + formats.erase(remove(begin(formats), end(formats), this)); } bool SubtitleFormat::CanReadFile(wxString const& filename) const { @@ -301,7 +301,7 @@ void SubtitleFormat::MergeIdentical(AssFile &file) { } } -std::list SubtitleFormat::formats; +std::vector SubtitleFormat::formats; void SubtitleFormat::LoadFormats() { if (formats.empty()) { diff --git a/aegisub/src/subtitle_format.h b/aegisub/src/subtitle_format.h index 0dc463777..0e89bafab 100644 --- a/aegisub/src/subtitle_format.h +++ b/aegisub/src/subtitle_format.h @@ -35,7 +35,7 @@ #pragma once #ifndef AGI_PRE -#include +#include #include #include @@ -61,7 +61,7 @@ class SubtitleFormat { virtual wxArrayString GetWriteWildcards() const { return wxArrayString(); } /// List of loaded subtitle formats - static std::list formats; + static std::vector formats; public: /// Strip override tags