Revision: 76904
          http://sourceforge.net/p/brlcad/code/76904
Author:   brlcad
Date:     2020-08-23 16:13:18 +0000 (Sun, 23 Aug 2020)
Log Message:
-----------
eliminate the preprocessor indirection, check for null dereferencing

Modified Paths:
--------------
    brlcad/trunk/src/mged/edsol.c
    brlcad/trunk/src/mged/mged.c
    brlcad/trunk/src/mged/mged_dm.h

Modified: brlcad/trunk/src/mged/edsol.c
===================================================================
--- brlcad/trunk/src/mged/edsol.c       2020-08-23 16:12:28 UTC (rev 76903)
+++ brlcad/trunk/src/mged/edsol.c       2020-08-23 16:13:18 UTC (rev 76904)
@@ -2808,9 +2808,11 @@
     }
     bu_vls_printf(&str, ") [%d]: ", arb_vertices[type][loc]);
 
+    const struct bu_vls *dnvp = dm_get_dname(curr_dm_list->dml_dmp);
+
     bu_vls_printf(&cmd, "cad_input_dialog .get_vertex %s {Need vertex for 
solid rotate}\
  {%s} vertex_num %d 0 {{ summary \"Enter a vertex number to rotate about.\"}} 
OK",
-                 bu_vls_addr(dName), bu_vls_addr(&str), 
arb_vertices[type][loc]);
+                 (dnvp) ? bu_vls_addr(dnvp) : "id", bu_vls_addr(&str), 
arb_vertices[type][loc]);
 
     while (!valid) {
        if (Tcl_Eval(INTERP, bu_vls_addr(&cmd)) != TCL_OK) {

Modified: brlcad/trunk/src/mged/mged.c
===================================================================
--- brlcad/trunk/src/mged/mged.c        2020-08-23 16:12:28 UTC (rev 76903)
+++ brlcad/trunk/src/mged/mged.c        2020-08-23 16:13:18 UTC (rev 76904)
@@ -1272,15 +1272,24 @@
     BU_LIST_INIT(&curr_dm_list->dml_p_vlist);
     predictor_init();
 
+    struct bu_vls *dnvp = dm_get_dname(curr_dm_list->dml_dmp);
+    if (dnvp) {
+       bu_vls_init(dnvp);
+    }
+
     DMP = dm_get();
     dm_set_null(DMP);
-    bu_vls_init(tkName);
-    bu_vls_init(dName);
-    if (dm_get_pathname(DMP)) {
-       bu_vls_strcpy(dm_get_pathname(DMP), "nu");
+    struct bu_vls *dpvp = dm_get_pathname(DMP);
+    if (dpvp) {
+       bu_vls_strcpy(dpvp, "nu");
     }
-    bu_vls_strcpy(tkName, "nu");
 
+    struct bu_vls *tnvp = dm_get_tkname(curr_dm_list->dml_dmp);
+    if (tnvp) {
+       bu_vls_init(tnvp); /* this may leak */
+       bu_vls_strcpy(tnvp, "nu");
+    }
+
     BU_ALLOC(rubber_band, struct _rubber_band);
     *rubber_band = default_rubber_band;                /* struct copy */
 
@@ -1540,7 +1549,8 @@
      */
     {
        const unsigned char *dm_bg = dm_get_bg(DMP);
-       dm_set_bg(DMP, dm_bg[0], dm_bg[1], dm_bg[2]);
+       if (dm_bg)
+           dm_set_bg(DMP, dm_bg[0], dm_bg[1], dm_bg[2]);
     }
 
     /* initialize a display manager */

Modified: brlcad/trunk/src/mged/mged_dm.h
===================================================================
--- brlcad/trunk/src/mged/mged_dm.h     2020-08-23 16:12:28 UTC (rev 76903)
+++ brlcad/trunk/src/mged/mged_dm.h     2020-08-23 16:13:18 UTC (rev 76904)
@@ -449,8 +449,6 @@
 #define netchan curr_dm_list->dml_netchan
 #endif
 #define clients curr_dm_list->dml_clients
-#define tkName dm_get_tkname(curr_dm_list->dml_dmp)
-#define dName dm_get_dname(curr_dm_list->dml_dmp)
 #define dirty curr_dm_list->dml_dirty
 #define mapped curr_dm_list->dml_mapped
 #define owner curr_dm_list->dml_owner

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