Changeset: f1dbd81e4041 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f1dbd81e4041
Modified Files:
sql/common/sql_list.c
Branch: Jan2014
Log Message:
More aggressively set pointers to NULL after data has been destroyed.
diffs (38 lines):
diff --git a/sql/common/sql_list.c b/sql/common/sql_list.c
--- a/sql/common/sql_list.c
+++ b/sql/common/sql_list.c
@@ -96,8 +96,10 @@ list_empty(list *l)
static void
node_destroy(list *l, node *n)
{
- if (n->data && l->destroy)
+ if (n->data && l->destroy) {
l->destroy(n->data);
+ n->data = NULL;
+ }
if (!l->sa)
_DELETE(n);
}
@@ -106,14 +108,17 @@ void
list_destroy(list *l)
{
if (l) {
- node *n = l->h;
+ node **n = &l->h;
MT_lock_destroy(&l->ht_lock);
- while (n && (l->destroy|| !l->sa)) {
- node *t = n;
+ if (l->destroy || l->sa == NULL) {
+ while (*n) {
+ node *t = *n;
- n = n->next;
- node_destroy(l, t);
+ *n = NULL;
+ n = &t->next;
+ node_destroy(l, t);
+ }
}
if (!l->sa)
_DELETE(l);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list