Revision: 76639
http://sourceforge.net/p/brlcad/code/76639
Author: starseeker
Date: 2020-08-02 00:02:15 +0000 (Sun, 02 Aug 2020)
Log Message:
-----------
Add non-bu_list based functions for solid obj reuse management
Modified Paths:
--------------
brlcad/branches/bioh/src/libged/ged_private.h
brlcad/branches/bioh/src/libged/ged_util.c
Modified: brlcad/branches/bioh/src/libged/ged_private.h
===================================================================
--- brlcad/branches/bioh/src/libged/ged_private.h 2020-08-01 23:40:26 UTC
(rev 76638)
+++ brlcad/branches/bioh/src/libged/ged_private.h 2020-08-02 00:02:15 UTC
(rev 76639)
@@ -650,6 +650,9 @@
GED_EXPORT extern int ged_view_data_lines(struct ged *gedp, int argc, const
char *argv[]);
+GED_EXPORT extern void ged_push_solid(struct ged *gedp, struct solid *sp);
+GED_EXPORT extern struct solid *ged_pop_solid(struct ged *gedp);
+
__END_DECLS
#endif /* LIBGED_GED_PRIVATE_H */
Modified: brlcad/branches/bioh/src/libged/ged_util.c
===================================================================
--- brlcad/branches/bioh/src/libged/ged_util.c 2020-08-01 23:40:26 UTC (rev
76638)
+++ brlcad/branches/bioh/src/libged/ged_util.c 2020-08-02 00:02:15 UTC (rev
76639)
@@ -64,6 +64,28 @@
return gdvp;
}
+void
+ged_push_solid(struct ged *gedp, struct solid *sp)
+{
+ RT_FREE_VLIST(&(sp->s_vlist));
+ sp->s_fullpath.fp_len = 0; // Don't free memory, but implicitly clear
contents
+ bu_ptbl_ins(&gedp->free_solids, (long *)sp);
+}
+
+struct solid *
+ged_pop_solid(struct ged *gedp)
+{
+ struct solid *sp = NULL;
+ if (BU_PTBL_LEN(&gedp->free_solids)) {
+ sp = (struct solid *)BU_PTBL_GET(&gedp->free_solids,
(BU_PTBL_LEN(&gedp->free_solids) - 1));
+ bu_ptbl_rm(&gedp->free_solids, (long *)sp);
+ } else {
+ BU_ALLOC(sp, struct solid); // from GET_SOLID in rt/solid.h
+ db_full_path_init(&(sp)->s_fullpath);
+ }
+ return sp;
+}
+
int
_ged_results_init(struct ged_results *results)
{
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