Changeset: c20d025b132b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c20d025b132b
Modified Files:
sql/storage/objectset.c
Branch: nospare
Log Message:
Clean up os_destroy.
diffs (53 lines):
diff --git a/sql/storage/objectset.c b/sql/storage/objectset.c
--- a/sql/storage/objectset.c
+++ b/sql/storage/objectset.c
@@ -530,33 +530,30 @@ os_dup(objectset *os)
return os;
}
-// TODO: Look into cohesion between os_destroy, os->destroy and node_destroy
void
os_destroy(objectset *os, sql_store store)
{
+ MT_lock_destroy(&os->ht_lock);
if (--os->refcnt > 0)
return;
- if (os->destroy) {
- for(versionhead *n=os->name_based_h; n; n=n->next) {
- objectversion *ov = n->ov;
- /* TODO destroy objectversion */
- while(ov) { /* how about id based older ? */
- os->destroy(store, ov->b);
- ov = ov->name_based_older;
- }
+ versionhead* n=os->name_based_h;
+ while(n) {
+ objectversion *ov = n->ov;
+ while(ov) {
+ objectversion *older = ov->name_based_older;
+ objectversion_destroy(store, os, ov);
+ ov = older;
}
+ versionhead* hn =n->next;
+ node_destroy(os, store, n);
+ n = hn;
}
- versionhead *n = os->name_based_h;
- MT_lock_destroy(&os->ht_lock);
- os->name_based_h = NULL;
- if (os->destroy || os->sa == NULL) {
- while (n) {
- versionhead *t = n;
-
- n = t->next;
- node_destroy(os, store, t);
- }
+ n=os->id_based_h;
+ while(n) {
+ versionhead* hn =n->next;
+ node_destroy(os, store, n);
+ n = hn;
}
if (os->name_map && !os->name_map->sa)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list