2
0
Эх сурвалжийг харах

protect against assertion

David Rose 19 жил өмнө
parent
commit
b9a108f9cd

+ 17 - 13
panda/src/audiotraits/milesAudioManager.cxx

@@ -104,21 +104,25 @@ MilesAudioManager() {
         // Load the downloadable sounds file:
         // Load the downloadable sounds file:
 
 
         if (_dls_field == NULL) {
         if (_dls_field == NULL) {
-          HDLSDEVICE dls;
+          HDLSDEVICE dls = NULL;
           AIL_quick_handles(0, 0, &dls);
           AIL_quick_handles(0, 0, &dls);
-          nassertv(dls != NULL);
-          string dls_file = Filename(audio_dls_file).to_os_specific();
-          if (dls_file.empty()) {
-            get_gm_file_path(dls_file);
-            // we need more dbg info in logs, so bumping the msgs from 'debug' status to 'info' status
-            audio_info("  using default dls_file: "<< dls_file );
+          if (dls == NULL) {
+            audio_error("  Unable to open DLS. " << AIL_last_error());
+          } else {
+            string dls_file = Filename(audio_dls_file).to_os_specific();
+            if (dls_file.empty()) {
+              get_gm_file_path(dls_file);
+              // we need more dbg info in logs, so bumping the msgs from 'debug' status to 'info' status
+              audio_info("  using default dls_file: "<< dls_file );
+            }
+            
+            audio_debug("  dls_file=\""<<dls_file<<"\"");
+            // note: if AIL_DLS_load_file is not done, midi fails to play on some machines.
+            nassertv(_dls_field == NULL);
+            audio_debug("  AIL_DLS_load_file(dls, " << dls_file << ", 0)");
+            _dls_field = AIL_DLS_load_file(dls, dls_file.c_str(), 0);
           }
           }
-          
-          audio_debug("  dls_file=\""<<dls_file<<"\"");
-          // note: if AIL_DLS_load_file is not done, midi fails to play on some machines.
-          nassertv(_dls_field == NULL);
-          audio_debug("  AIL_DLS_load_file(dls, " << dls_file << ", 0)");
-          _dls_field = AIL_DLS_load_file(dls, dls_file.c_str(), 0);
+
           if (!_dls_field) {
           if (!_dls_field) {
             audio_error("  AIL_DLS_load_file() failed, \""<<AIL_last_error() <<"\" Switching to hardware midi");
             audio_error("  AIL_DLS_load_file() failed, \""<<AIL_last_error() <<"\" Switching to hardware midi");
             AIL_quick_shutdown();
             AIL_quick_shutdown();