From 4ef9d41601b572eff44566e3322d503001a28009 Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Fri, 11 Jun 2010 02:25:28 +0000 Subject: [PATCH] Don't require that subtitles passed to SubtitlesProvider::LoadSubtitles be a copy that can be deleted Originally committed to SVN as r4477. --- aegisub/src/subtitles_provider_csri.cpp | 3 --- aegisub/src/subtitles_provider_libass.cpp | 1 - aegisub/src/video_context.cpp | 3 ++- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/aegisub/src/subtitles_provider_csri.cpp b/aegisub/src/subtitles_provider_csri.cpp index f18899216..2aebb84b8 100644 --- a/aegisub/src/subtitles_provider_csri.cpp +++ b/aegisub/src/subtitles_provider_csri.cpp @@ -94,7 +94,6 @@ void CSRISubtitlesProvider::LoadSubtitles(AssFile *subs) { if (!renderer) { renderer = csri_renderer_default(); if (!renderer) { - delete subs; throw _T("No CSRI renderer available, cannot show subtitles. Try installing one or switch to another subtitle provider."); } } @@ -103,7 +102,6 @@ void CSRISubtitlesProvider::LoadSubtitles(AssFile *subs) { if (canOpenMem) { std::vector data; subs->SaveMemory(data,_T("UTF-8")); - delete subs; instance = csri_open_mem(renderer,&data[0],data.size(),NULL); } @@ -111,7 +109,6 @@ void CSRISubtitlesProvider::LoadSubtitles(AssFile *subs) { else { wxString subsFileName = VideoContext::Get()->GetTempWorkFile(); subs->Save(subsFileName,false,false,_T("UTF-8")); - delete subs; instance = csri_open_file(renderer,subsFileName.mb_str(wxConvUTF8),NULL); } } diff --git a/aegisub/src/subtitles_provider_libass.cpp b/aegisub/src/subtitles_provider_libass.cpp index 56064bea8..acbcd73cc 100644 --- a/aegisub/src/subtitles_provider_libass.cpp +++ b/aegisub/src/subtitles_provider_libass.cpp @@ -133,7 +133,6 @@ void LibassSubtitlesProvider::LoadSubtitles(AssFile *subs) { // Prepare subtitles std::vector data; subs->SaveMemory(data,_T("UTF-8")); - delete subs; // Load file if (ass_track) ass_free_track(ass_track); diff --git a/aegisub/src/video_context.cpp b/aegisub/src/video_context.cpp index 982f0b128..b63440211 100644 --- a/aegisub/src/video_context.cpp +++ b/aegisub/src/video_context.cpp @@ -350,7 +350,8 @@ void VideoContext::Refresh (bool video, bool subtitles) { AssExporter exporter(grid->ass); exporter.AddAutoFilters(); try { - subsProvider->LoadSubtitles(exporter.ExportTransform()); + std::auto_ptr exported(exporter.ExportTransform()); + subsProvider->LoadSubtitles(exported.get()); } catch (wxString err) { wxMessageBox(_T("Error while invoking subtitles provider: ") + err,_T("Subtitles provider")); } catch (const wchar_t *err) { wxMessageBox(_T("Error while invoking subtitles provider: ") + wxString(err),_T("Subtitles provider")); }