From 04e8ef1cd938ce8e8adcd6d3b64b26d4d0b7e126 Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Sat, 6 May 2006 16:21:03 +0000 Subject: [PATCH] properly detect missing subtitle provider Originally committed to SVN as r376. --- core/subtitle_provider.cpp | 8 +++++++- core/video_provider_lavc.cpp | 6 +++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/core/subtitle_provider.cpp b/core/subtitle_provider.cpp index 7deebdb9e..d2e299cc8 100644 --- a/core/subtitle_provider.cpp +++ b/core/subtitle_provider.cpp @@ -50,6 +50,12 @@ SubtitleProvider::Class::Class(wxString name) SubtitleProvider *SubtitleProvider::Class::GetProvider(wxString provider_name, AssFile *subs) { - return (*classes)[provider_name]->Get(subs); + SubtitleProvider::Class *sp; + if (!classes) + throw _T("Subtitle provider not found"); + sp = (*classes)[provider_name]; + if (!sp) + throw _T("Subtitle provider not found"); + return sp->Get(subs); } diff --git a/core/video_provider_lavc.cpp b/core/video_provider_lavc.cpp index 7bb76e764..2376a4a5c 100644 --- a/core/video_provider_lavc.cpp +++ b/core/video_provider_lavc.cpp @@ -72,7 +72,11 @@ LAVCVideoProvider::LAVCVideoProvider(wxString filename, wxString subfilename) { LoadVideo(filename); // Attach subtitles - SubtitleProvider::Class::GetProvider(_T("asa"), AssFile::top)->Bind(this); + try { + SubtitleProvider::Class::GetProvider(_T("asa"), AssFile::top)->Bind(this); + } catch (...) { + /* warn user? */ + } }