changeset 794:3012740d014c

Add some NULL pointer checks in case the emulator engine backend didn't initialize and the user tries to play things anyway.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 07 Nov 2012 11:04:34 +0200
parents 0617f844ebdb
children 3e305ce076e8
files src/xmms-sid.c
diffstat 1 files changed, 11 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/xmms-sid.c	Wed Nov 07 10:54:43 2012 +0200
+++ b/src/xmms-sid.c	Wed Nov 07 11:04:34 2012 +0200
@@ -216,8 +216,11 @@
 
     xs_tuneinfo_free(xs_status.tuneInfo);
     xs_status.tuneInfo = NULL;
-    xs_status.engine->plrDeleteSID(&xs_status);
-    xs_status.engine->plrClose(&xs_status);
+    if (xs_status.engine != NULL)
+    {
+        xs_status.engine->plrDeleteSID(&xs_status);
+        xs_status.engine->plrClose(&xs_status);
+    }
 
     xs_songlen_close();
     xs_stil_close();
@@ -583,7 +586,9 @@
 
     /* Free tune information */
     XS_MUTEX_LOCK(xs_status);
-    xs_status.engine->plrDeleteSID(&xs_status);
+    if (xs_status.engine != NULL)
+        xs_status.engine->plrDeleteSID(&xs_status);
+
     xs_tuneinfo_free(xs_status.tuneInfo);
     xs_status.tuneInfo = NULL;
     XS_MUTEX_UNLOCK(xs_status);
@@ -881,6 +886,9 @@
 {
     XSTuneInfo *info;
     
+    if (xs_status.engine == NULL)
+        return;
+    
     XS_MUTEX_LOCK(xs_status);
 
     /* Get tune information from emulation engine */