Changeset: f6165beccf83 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f6165beccf83
Modified Files:
sql/storage/bat/bat_storage.c
Branch: Apr2019
Log Message:
fixed another memory/bat leak
diffs (84 lines):
diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -1770,18 +1770,17 @@ destroy_delta(sql_delta *b)
}
static int
-destroy_bat(sql_trans *tr, sql_delta *b)
+destroy_bat(sql_delta *b)
{
sql_delta *n;
- (void)tr;
if (!b)
return LOG_OK;
n = b->next;
destroy_delta(b);
_DELETE(b);
if (n)
- return destroy_bat(tr, n);
+ return destroy_bat(n);
return LOG_OK;
}
@@ -1790,9 +1789,10 @@ destroy_col(sql_trans *tr, sql_column *c
{
int ok = LOG_OK;
+ (void)tr;
if (c->data && c->base.allocated) {
c->base.allocated = 0;
- ok = destroy_bat(tr, c->data);
+ ok = destroy_bat(c->data);
}
c->data = NULL;
return ok;
@@ -1811,9 +1811,10 @@ destroy_idx(sql_trans *tr, sql_idx *i)
{
int ok = LOG_OK;
+ (void)tr;
if (i->data && i->base.allocated) {
i->base.allocated = 0;
- ok = destroy_bat(tr, i->data);
+ ok = destroy_bat(i->data);
}
i->data = NULL;
return ok;
@@ -2109,7 +2110,7 @@ gtr_update_delta( sql_trans *tr, sql_del
bat_destroy(cur);
cbat->cleared = 0;
if (cbat->next) {
- ok = destroy_bat(tr, cbat->next);
+ ok = destroy_bat(cbat->next);
cbat->next = NULL;
}
return ok;
@@ -2328,6 +2329,8 @@ tr_update_delta( sql_trans *tr, sql_delt
return LOG_ERR;
}
if (!obat->bid && tr != gtrans) {
+ if (obat->next)
+ destroy_bat(obat->next);
destroy_delta(obat);
*obat = *cbat;
cbat->bid = 0;
@@ -2424,7 +2427,7 @@ tr_update_delta( sql_trans *tr, sql_delt
}
bat_destroy(cur);
if (obat->next) {
- ok = destroy_bat(tr, obat->next);
+ ok = destroy_bat(obat->next);
obat->next = NULL;
}
return ok;
@@ -2523,7 +2526,7 @@ tr_merge_delta( sql_trans *tr, sql_delta
obat->cleared = 0;
bat_destroy(cur);
if (obat->next) {
- ok = destroy_bat(tr, obat->next);
+ ok = destroy_bat(obat->next);
obat->next = NULL;
}
return ok;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list