Changeset: ee41d0879431 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ee41d0879431
Modified Files:
gdk/gdk_logger.c
monetdb5/mal/mal_client.c
monetdb5/mal/mal_profiler.c
Branch: Sep2022
Log Message:
Fix some potential memory leaks + a bit of cleanup.
diffs (101 lines):
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -1244,7 +1244,7 @@ log_read_transaction(logger *lg)
GDKdebug = dbg;
if (cands)
- GDKfree(cands);
+ BBPunfix(cands->batCacheid);
if (!ok)
return LOG_EOF;
return err;
diff --git a/monetdb5/mal/mal_client.c b/monetdb5/mal/mal_client.c
--- a/monetdb5/mal/mal_client.c
+++ b/monetdb5/mal/mal_client.c
@@ -276,7 +276,7 @@ MCinitClientRecord(Client c, oid user, b
}
c->promptlength = strlen(prompt);
- c->profticks = c->profstmt = NULL;
+ c->profticks = c->profstmt = c->profevents = NULL;
c->error_row = c->error_fld = c->error_msg = c->error_input = NULL;
c->sqlprofiler = 0;
c->wlc_kind = 0;
@@ -478,7 +478,8 @@ MCfreeClient(Client c)
if( c->profticks){
BBPunfix(c->profticks->batCacheid);
BBPunfix(c->profstmt->batCacheid);
- c->profticks = c->profstmt = NULL;
+ BBPunfix(c->profevents->batCacheid);
+ c->profticks = c->profstmt = c->profevents = NULL;
}
if( c->error_row){
BBPunfix(c->error_row->batCacheid);
diff --git a/monetdb5/mal/mal_profiler.c b/monetdb5/mal/mal_profiler.c
--- a/monetdb5/mal/mal_profiler.c
+++ b/monetdb5/mal/mal_profiler.c
@@ -108,7 +108,7 @@ lognew(struct logbuf *logbuf)
static inline void
logdel(struct logbuf *logbuf)
{
- free(logbuf->logbuffer);
+ GDKfree(logbuf->logbuffer);
logbuf->logbuffer = NULL;
}
@@ -142,7 +142,7 @@ logadd(struct logbuf *logbuf, const char
logbuf->logcap = (size_t) tmp_len + (size_t) tmp_len/2;
if (logbuf->logcap < LOGLEN)
logbuf->logcap = LOGLEN;
- alloc_buff = realloc(logbuf->logbuffer, logbuf->logcap);
+ alloc_buff = GDKrealloc(logbuf->logbuffer,
logbuf->logcap);
if (alloc_buff == NULL) {
TRC_ERROR(MAL_SERVER, "Profiler JSON buffer
reallocation failure\n");
logdel(logbuf);
@@ -661,7 +661,7 @@ profilerEvent(MalEvent *me, NonMalEvent
}
if (event) {
logjsonInternal(event, true);
- free(event);
+ GDKfree(event);
}
}
MT_lock_unset(&mal_profileLock);
@@ -829,15 +829,10 @@ static void
cntxt->profticks = cntxt->profstmt = cntxt->profevents = NULL;
}
-static BAT *
+static inline BAT *
TRACEcreate(int tt)
{
- BAT *b;
-
- b = COLnew(0, tt, 1 << 10, TRANSIENT);
- if (b == NULL)
- return NULL;
- return b;
+ return COLnew(0, tt, 1 << 10, TRANSIENT);
}
static void
@@ -942,8 +937,7 @@ sqlProfilerEvent(Client cntxt, MalBlkPtr
}
errors += BUNappend(cntxt->profticks, &pci->ticks, false) !=
GDK_SUCCEED;
errors += BUNappend(cntxt->profstmt, c, false) != GDK_SUCCEED;
- if( ev)
- errors += BUNappend(cntxt->profevents, ev, false) !=
GDK_SUCCEED;
+ errors += BUNappend(cntxt->profevents, ev ? ev : str_nil, false) !=
GDK_SUCCEED;
if (errors > 0) {
/* stop profiling if an error occurred */
cntxt->sqlprofiler = FALSE;
@@ -951,7 +945,7 @@ sqlProfilerEvent(Client cntxt, MalBlkPtr
MT_lock_unset(&mal_profileLock);
GDKfree(stmt);
- if(ev) free(ev);
+ GDKfree(ev);
}
lng
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]