]> www.vanbest.org Git - sasc-ng.git/commitdiff
fix segfault with vdr 1.7.11+ and --help
authorleslie <unknown>
Sun, 28 Feb 2010 05:06:16 +0000 (13:06 +0800)
committerleslie <unknown>
Sun, 28 Feb 2010 05:06:16 +0000 (13:06 +0800)
cam.c
cam.h
sc.c

diff --git a/cam.c b/cam.c
index 0a47e9219573673ab1ac807ed9a5f36a14863acf..804dceee7f28e9c9843ff1a1cb08f9a7592986ff 100644 (file)
--- a/cam.c
+++ b/cam.c
@@ -3139,7 +3139,7 @@ bool cScDvbDevice::ForceBudget(int n)
 static int *vdr_nci=0, *vdr_ud=0, vdr_save_ud;
 #endif
 
-void cScDvbDevice::Capture(void)
+void cScDvbDevice::OnPluginLoad(void)
 {
 #if APIVERSNUM >= 10711
   scProbe=new cScDvbDeviceProbe;
@@ -3164,10 +3164,16 @@ void cScDvbDevice::Capture(void)
 #endif
 }
 
-bool cScDvbDevice::Initialize(void)
+void cScDvbDevice::OnPluginUnload(void)
 {
 #if APIVERSNUM >= 10711
   delete scProbe; scProbe=0;
+#endif
+}
+
+bool cScDvbDevice::Initialize(void)
+{
+#if APIVERSNUM >= 10711
   return true;
 #else
   if(!vdr_nci || !vdr_ud) {
@@ -3510,7 +3516,10 @@ bool cScDvbDevice::ForceBudget(int n)
    return true;
 }
 
-void cScDvbDevice::Capture(void)
+void cScDvbDevice::OnPluginLoad(void)
+{}
+
+void cScDvbDevice::OnPluginUnload(void)
 {}
 
 bool cScDvbDevice::Initialize(void)
diff --git a/cam.h b/cam.h
index 2dda4ca439b27dc310088dc119afa006b282db86..a8cd183ab9af5746d1f7e2afca3cd01e5e4950fc 100644 (file)
--- a/cam.h
+++ b/cam.h
@@ -245,7 +245,8 @@ public:
   virtual int ProvidesCa(const cChannel *Channel) const;
 #endif
 #endif //SASC
-  static void Capture(void);
+  static void OnPluginLoad(void);
+  static void OnPluginUnload(void);
   static bool Initialize(void);
   static void Startup(void);
   static void Shutdown(void);
diff --git a/sc.c b/sc.c
index 120b887104d5f23e326c7aa2bd711e8518d63754..5afb242687c3f90cc67ca09d54ae48272e44a344 100644 (file)
--- a/sc.c
+++ b/sc.c
@@ -1277,7 +1277,7 @@ cScPlugin::cScPlugin(void)
 #else
   dllSuccess=true;
 #endif
-  if(dllSuccess) cScDvbDevice::Capture();
+  if(dllSuccess) cScDvbDevice::OnPluginLoad();
   keeper=0;
 }
 
@@ -1286,6 +1286,7 @@ cScPlugin::~cScPlugin()
   delete keeper;
   delete ScOpts;
   delete LogOpts;
+  cScDvbDevice::OnPluginUnload();
 }
 
 bool cScPlugin::Initialize(void)