[brlcad-commits] SF.net SVN: brlcad:[37041] brlcad/trunk/src/librt
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <br...@us...> - 2009-12-28 15:49:26
|
Revision: 37041 http://brlcad.svn.sourceforge.net/brlcad/?rev=37041&view=rev Author: brlcad Date: 2009-12-28 15:49:18 +0000 (Mon, 28 Dec 2009) Log Message: ----------- more resource fallout. rt_comb_adjust() needs a resource pointer to pass to db_free_tree() and db_tree_parse() so provide the uniresource. add a slew of nullity/resource parameter validations to public api (should never be required to pass a non-null resource) while we're at it. Modified Paths: -------------- brlcad/trunk/src/librt/db_tree.c brlcad/trunk/src/librt/tcl.c Modified: brlcad/trunk/src/librt/db_tree.c =================================================================== --- brlcad/trunk/src/librt/db_tree.c 2009-12-28 15:27:49 UTC (rev 37040) +++ brlcad/trunk/src/librt/db_tree.c 2009-12-28 15:49:18 UTC (rev 37041) @@ -110,6 +110,9 @@ db_init_db_tree_state(struct db_tree_state *tsp, struct db_i *dbip, struct resource *resp) { RT_CK_DBI(dbip); + if (!resp) { + resp = &rt_uniresource; + } RT_CK_RESOURCE(resp); memset((char *)tsp, 0, sizeof(*tsp)); @@ -550,6 +553,10 @@ union tree *subtree; RT_CK_TREE(tp); + if (!resp) { + resp = &rt_uniresource; + } + RT_CK_RESOURCE(resp); switch (tp->tr_op) { @@ -595,6 +602,10 @@ union tree *subtree; RT_CK_TREE(tp); + if (!resp) { + resp = &rt_uniresource; + } + RT_CK_RESOURCE(resp); switch (tp->tr_op) { @@ -663,6 +674,9 @@ if (*tp == TREE_NULL) return -1; RT_CK_TREE(*tp); + if (!resp) { + resp = &rt_uniresource; + } RT_CK_RESOURCE(resp); if ((parent = db_find_named_leafs_parent(&side, *tp, cp)) == TREE_NULL) { @@ -1352,6 +1366,9 @@ union tree *new; RT_CK_TREE(tp); + if (!resp) { + resp = &rt_uniresource; + } RT_CK_RESOURCE(resp); RT_GET_TREE(new, resp); @@ -1453,6 +1470,9 @@ db_free_tree(union tree *tp, struct resource *resp) { RT_CK_TREE(tp); + if (!resp) { + resp = &rt_uniresource; + } RT_CK_RESOURCE(resp); /* @@ -1594,6 +1614,9 @@ int repush_child=0; RT_CK_TREE(tp); + if (!resp) { + resp = &rt_uniresource; + } RT_CK_RESOURCE(resp); switch (tp->tr_op) { @@ -1929,6 +1952,9 @@ union tree *new; RT_CK_TREE(tp); + if (!resp) { + resp = &rt_uniresource; + } RT_CK_RESOURCE(resp); if (cur >= lim) bu_bomb("db_tally_subtree_regions: array overflow\n"); Modified: brlcad/trunk/src/librt/tcl.c =================================================================== --- brlcad/trunk/src/librt/tcl.c 2009-12-28 15:27:49 UTC (rev 37040) +++ brlcad/trunk/src/librt/tcl.c 2009-12-28 15:49:18 UTC (rev 37041) @@ -743,6 +743,7 @@ if (!resp) { resp = &rt_uniresource; } + RT_CK_RESOURCE(resp); /* Skip over leading spaces in input */ while (*str && isspace(*str)) str++; @@ -902,6 +903,11 @@ struct bu_vls logstr; union tree *tp; + if (!resp) { + resp = &rt_uniresource; + } + RT_CK_RESOURCE(resp); + bu_vls_init(&logstr); tp = db_tree_parse(&logstr, str, resp); Tcl_AppendResult(interp, bu_vls_addr(&logstr), (char *)NULL); @@ -1055,7 +1061,6 @@ double d; RT_CK_DB_INTERNAL(intern); - RT_CK_RESOURCE(resp); comb = (struct rt_comb_internal *)intern->idb_ptr; RT_CK_COMB(comb); @@ -1178,17 +1183,17 @@ if (*argv[1] == '\0' || strcmp(argv[1], "none") == 0) { if (comb->tree) { - db_free_tree(comb->tree, resp); + db_free_tree(comb->tree, &rt_uniresource); } comb->tree = TREE_NULL; } else { - new = db_tree_parse(logstr, argv[1], resp); + new = db_tree_parse(logstr, argv[1], &rt_uniresource); if (new == TREE_NULL) { bu_vls_printf(logstr, "db adjust tree: bad tree '%s'\n", argv[1]); return BRLCAD_ERROR; } if (comb->tree) - db_free_tree(comb->tree, resp); + db_free_tree(comb->tree, &rt_uniresource); comb->tree = new; } } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |