Revision: 76901
          http://sourceforge.net/p/brlcad/code/76901
Author:   brlcad
Date:     2020-08-23 16:09:08 +0000 (Sun, 23 Aug 2020)
Log Message:
-----------
simplify and make sure we're not printing a null pointer.  seems unlikely logic 
is correctly / gracefully handling there being no dm.

Modified Paths:
--------------
    brlcad/trunk/src/libdm/dm_plugins.cpp

Modified: brlcad/trunk/src/libdm/dm_plugins.cpp
===================================================================
--- brlcad/trunk/src/libdm/dm_plugins.cpp       2020-08-23 13:35:34 UTC (rev 
76900)
+++ brlcad/trunk/src/libdm/dm_plugins.cpp       2020-08-23 16:09:08 UTC (rev 
76901)
@@ -43,12 +43,9 @@
 extern "C" struct dm *
 dm_open(void *interp, const char *type, int argc, const char *argv[])
 {
-    if (BU_STR_EQUIV(type, "nu")) {
+    if (BU_STR_EQUIV(type, "nu") || BU_STR_EQUIV(type, "null")) {
        return dm_null.i->dm_open(interp, argc, argv);
     }
-    if (BU_STR_EQUIV(type, "null")) {
-       return dm_null.i->dm_open(interp, argc, argv);
-    }
     std::map<std::string, const struct dm *> *dmb = (std::map<std::string, 
const struct dm *> *)dm_backends;
     std::string key(type);
     std::transform(key.begin(), key.end(), key.begin(), [](unsigned char c){ 
return std::tolower(c); });
@@ -126,7 +123,8 @@
        std::string key = d_it->first;
        const struct dm *d = d_it->second;
        if (strlen(bu_vls_cstr(list)) > 0) bu_vls_printf(list, "%s", 
bu_vls_cstr(&sep));
-       bu_vls_printf(list, "%s", dm_get_name(d));
+       if (dm_get_name(d))
+           bu_vls_printf(list, "%s", dm_get_name(d));
     }
     if (strlen(bu_vls_cstr(list)) > 0) bu_vls_printf(list, "%s", 
bu_vls_cstr(&sep));
     bu_vls_printf(list, "nu");
@@ -147,7 +145,8 @@
        }
        const struct dm *d = d_it->second;
        if (strlen(bu_vls_cstr(list)) > 0) bu_vls_printf(list, "%s", 
bu_vls_cstr(&sep));
-       bu_vls_printf(list, "%s", dm_get_name(d));
+       if (dm_get_name(d))
+           bu_vls_printf(list, "%s", dm_get_name(d));
        i++;
        b = priority_list[i];
     }

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to