Revision: 77683
http://sourceforge.net/p/brlcad/code/77683
Author: brlcad
Date: 2020-11-04 19:00:59 +0000 (Wed, 04 Nov 2020)
Log Message:
-----------
rewrite _ged_free_search_set() to simplify the looping construct and eliminate
some unnecessary conditionals. avoids calling BU_PTBL_GET on an invalid index
too.
Modified Paths:
--------------
brlcad/trunk/src/libged/search/search.c
Modified: brlcad/trunk/src/libged/search/search.c
===================================================================
--- brlcad/trunk/src/libged/search/search.c 2020-11-04 18:51:50 UTC (rev
77682)
+++ brlcad/trunk/src/libged/search/search.c 2020-11-04 19:00:59 UTC (rev
77683)
@@ -119,25 +119,24 @@
HIDDEN void
_ged_free_search_set(struct bu_ptbl *search_set)
{
- int i;
+ size_t i;
if (!search_set)
return;
- for (i = (int)BU_PTBL_LEN(search_set) - 1; i >= 0; i--) {
+ for (i = 0; i < BU_PTBL_LEN(search_set); i++) {
struct ged_search *search = (struct ged_search
*)BU_PTBL_GET(search_set, i);
- if (search && search->paths)
- bu_free(search->paths, "free search paths");
-
- if (search)
+ if (search) {
+ if (search->paths) {
+ bu_free(search->paths, "free search paths");
+ }
bu_free(search, "free search");
+ }
}
- if (search_set) {
- bu_ptbl_free(search_set);
- bu_free(search_set, "free search container");
- }
+ bu_ptbl_free(search_set);
+ bu_free(search_set, "free search container");
}
@@ -454,10 +453,12 @@
* each path is treated as its own search */
if (all_local) {
struct bu_ptbl *uniq_db_objs;
+ size_t len = BU_PTBL_LEN(search_set);
+
BU_ALLOC(uniq_db_objs, struct bu_ptbl);
BU_PTBL_INIT(uniq_db_objs);
- for (i = (int)BU_PTBL_LEN(search_set) - 1; i >= 0; i--) {
+ for (i = (int)len - 1; i >= 0; i--) {
int path_cnt = 0;
struct ged_search *search = (struct ged_search
*)BU_PTBL_GET(search_set, i);
struct directory *curr_path = search->paths[path_cnt];
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