Revision: 33435
          http://brlcad.svn.sourceforge.net/brlcad/?rev=33435&view=rev
Author:   bob1961
Date:     2008-12-31 19:59:00 +0000 (Wed, 31 Dec 2008)

Log Message:
-----------
Minor mods.

Modified Paths:
--------------
    brlcad/trunk/src/libged/ged.c

Modified: brlcad/trunk/src/libged/ged.c
===================================================================
--- brlcad/trunk/src/libged/ged.c       2008-12-31 19:57:18 UTC (rev 33434)
+++ brlcad/trunk/src/libged/ged.c       2008-12-31 19:59:00 UTC (rev 33435)
@@ -51,96 +51,37 @@
 void ged_drawable_init(struct ged_drawable *gdp);
 void ged_drawable_close(struct ged_drawable *gdp);
 
-struct ged *
-ged_open(const char *dbtype, const char *filename, int existing_only)
+void
+ged_close(struct ged *gedp)
 {
-    struct ged *gedp;
-    struct rt_wdb *wdbp;
-    struct mater *save_materp = MATER_NULL;
+    if (gedp == GED_NULL)
+       return;
 
-    save_materp = rt_material_head();
-    rt_new_material_head(MATER_NULL);
-
-    if (strcmp(dbtype, "db") == 0) {
-       struct db_i     *dbip;
-
-       if ((dbip = ged_open_dbip(filename, existing_only)) == DBI_NULL) {
-           /* Restore RT's material head */
-           rt_new_material_head(save_materp);
-
-           return GED_NULL;
-       }
-
-       RT_CK_DBI(dbip);
-
-       wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_DISK);
-    } else if (strcmp(dbtype, "file") == 0) {
-       wdbp = wdb_fopen(filename);
-    } else {
-       struct db_i     *dbip;
-
-       if (ged_decode_dbip(filename, &dbip) != BRLCAD_OK) {
-           /* Restore RT's material head */
-           rt_new_material_head(save_materp);
-
-           return GED_NULL;
-       }
-
-       if (strcmp(dbtype, "disk" ) == 0)
-           wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_DISK);
-       else if (strcmp(dbtype, "disk_append") == 0)
-           wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_DISK_APPEND_ONLY);
-       else if (strcmp(dbtype, "inmem" ) == 0)
-           wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_INMEM);
-       else if (strcmp(dbtype, "inmem_append" ) == 0)
-           wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_INMEM_APPEND_ONLY);
-       else {
-           /* Restore RT's material head */
-           rt_new_material_head(save_materp);
-
-           bu_log("wdb_open %s target type not recognized", dbtype);
-           return GED_NULL;
-       }
-    }
-
-    BU_GETSTRUCT(gedp, ged);
-    GED_INIT(gedp, wdbp);
-
-    return gedp;
+    wdb_close(gedp->ged_wdbp);
+    ged_drawable_close(gedp->ged_gdp);
+    ged_free(gedp);
 }
 
-void
-ged_init(struct ged *gedp)
+int
+ged_decode_dbip(const char *dbip_string, struct db_i **dbipp)
 {
-    if (gedp == GED_NULL)
-       return;
 
-    bu_vls_init(&gedp->ged_log);
-    bu_vls_init(&gedp->ged_result_str);
+    *dbipp = (struct db_i *)atol(dbip_string);
 
-    bu_vls_extend(&gedp->ged_log, 1);
-    bu_vls_extend(&gedp->ged_result_str, 1);
+    /* Could core dump */
+    RT_CK_DBI(*dbipp);
 
-    BU_GETSTRUCT(gedp->ged_gdp, ged_drawable);
-    ged_drawable_init(gedp->ged_gdp);
+    return BRLCAD_OK;
 }
 
 void
-ged_close(struct ged *gedp)
+ged_drawable_close(struct ged_drawable *gdp)
 {
-    if (gedp == GED_NULL)
+    if (gdp == GED_DRAWABLE_NULL)
        return;
 
-    wdb_close(gedp->ged_wdbp);
-    ged_drawable_close(gedp->ged_gdp);
-
-    gedp->ged_wdbp = RT_WDB_NULL;
-    gedp->ged_gdp = GED_DRAWABLE_NULL;
-
-    bu_vls_free(&gedp->ged_log);
-    bu_vls_free(&gedp->ged_result_str);
-
-    bu_free((genptr_t)gedp, "struct ged");
+    ged_free_qray(gdp);
+    bu_free((genptr_t)gdp, "struct ged_drawable");
 }
 
 void
@@ -162,16 +103,37 @@
 }
 
 void
-ged_drawable_close(struct ged_drawable *gdp)
+ged_free(struct ged *gedp)
 {
-    if (gdp == GED_DRAWABLE_NULL)
+    if (gedp == GED_NULL)
        return;
 
-    ged_free_qray(gdp);
-    bu_free((genptr_t)gdp, "struct ged_drawable");
+    gedp->ged_wdbp = RT_WDB_NULL;
+    gedp->ged_gdp = GED_DRAWABLE_NULL;
+
+    bu_vls_free(&gedp->ged_log);
+    bu_vls_free(&gedp->ged_result_str);
+
+    bu_free((genptr_t)gedp, "struct ged");
 }
 
 void
+ged_init(struct ged *gedp)
+{
+    if (gedp == GED_NULL)
+       return;
+
+    bu_vls_init(&gedp->ged_log);
+    bu_vls_init(&gedp->ged_result_str);
+
+    bu_vls_extend(&gedp->ged_log, 1);
+    bu_vls_extend(&gedp->ged_result_str, 1);
+
+    BU_GETSTRUCT(gedp->ged_gdp, ged_drawable);
+    ged_drawable_init(gedp->ged_gdp);
+}
+
+void
 ged_view_init(struct ged_view *gvp)
 {
     if (gvp == GED_VIEW_NULL)
@@ -252,6 +214,64 @@
     ged_view_update(gvp);
 }
 
+struct ged *
+ged_open(const char *dbtype, const char *filename, int existing_only)
+{
+    struct ged *gedp;
+    struct rt_wdb *wdbp;
+    struct mater *save_materp = MATER_NULL;
+
+    save_materp = rt_material_head();
+    rt_new_material_head(MATER_NULL);
+
+    if (strcmp(dbtype, "db") == 0) {
+       struct db_i     *dbip;
+
+       if ((dbip = ged_open_dbip(filename, existing_only)) == DBI_NULL) {
+           /* Restore RT's material head */
+           rt_new_material_head(save_materp);
+
+           return GED_NULL;
+       }
+
+       RT_CK_DBI(dbip);
+
+       wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_DISK);
+    } else if (strcmp(dbtype, "file") == 0) {
+       wdbp = wdb_fopen(filename);
+    } else {
+       struct db_i     *dbip;
+
+       if (ged_decode_dbip(filename, &dbip) != BRLCAD_OK) {
+           /* Restore RT's material head */
+           rt_new_material_head(save_materp);
+
+           return GED_NULL;
+       }
+
+       if (strcmp(dbtype, "disk" ) == 0)
+           wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_DISK);
+       else if (strcmp(dbtype, "disk_append") == 0)
+           wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_DISK_APPEND_ONLY);
+       else if (strcmp(dbtype, "inmem" ) == 0)
+           wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_INMEM);
+       else if (strcmp(dbtype, "inmem_append" ) == 0)
+           wdbp = wdb_dbopen(dbip, RT_WDB_TYPE_DB_INMEM_APPEND_ONLY);
+       else {
+           /* Restore RT's material head */
+           rt_new_material_head(save_materp);
+
+           bu_log("wdb_open %s target type not recognized", dbtype);
+           return GED_NULL;
+       }
+    }
+
+    BU_GETSTRUCT(gedp, ged);
+    GED_INIT(gedp, wdbp);
+
+    return gedp;
+}
+
 /**
  * @brief
  * Open/Create the database and build the in memory directory.
@@ -291,18 +311,6 @@
     return dbip;
 }
 
-int
-ged_decode_dbip(const char *dbip_string, struct db_i **dbipp)
-{
-
-    *dbipp = (struct db_i *)atol(dbip_string);
-
-    /* Could core dump */
-    RT_CK_DBI(*dbipp);
-
-    return BRLCAD_OK;
-}
-
 void
 ged_print_node(struct ged              *gedp,
               register struct directory *dp,


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