Free memory allocated by counterdata+status to keep valgrind happy in the end
git-svn-id: http://repo.ham.fi/svn/aprsc/trunk@741 3ce903b1-3385-4e86-93cd-f9a4a239f7ac
This commit is contained in:
parent
d3de16120c
commit
cfe01cc7b2
|
|
@ -714,6 +714,7 @@ int main(int argc, char **argv)
|
|||
historydb_atend();
|
||||
filter_wx_atend();
|
||||
filter_entrycall_atend();
|
||||
status_atend();
|
||||
|
||||
hlog(LOG_NOTICE, "Shut down.");
|
||||
close_log(0);
|
||||
|
|
|
|||
|
|
@ -73,6 +73,16 @@ struct cdata_t *cdata_alloc(const char *name)
|
|||
return cd;
|
||||
}
|
||||
|
||||
extern void cdata_free(struct cdata_t *cd)
|
||||
{
|
||||
if (cd->next)
|
||||
cd->next->prevp = cd->prevp;
|
||||
*cd->prevp = cd->next;
|
||||
|
||||
hfree(cd->name);
|
||||
hfree(cd);
|
||||
}
|
||||
|
||||
struct cdata_t *cdata_find_and_lock(const char *name)
|
||||
{
|
||||
struct cdata_t *cd = NULL;
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
struct cdata_t;
|
||||
|
||||
extern struct cdata_t *cdata_alloc(const char *name);
|
||||
extern void cdata_free(struct cdata_t *cd);
|
||||
extern void cdata_counter_sample(struct cdata_t *cd, long long value);
|
||||
extern void cdata_gauge_sample(struct cdata_t *cd, long long value);
|
||||
extern long cdata_get_last_value(const char *name);
|
||||
|
|
|
|||
13
src/status.c
13
src/status.c
|
|
@ -391,8 +391,21 @@ void status_init(void)
|
|||
cl->name = cdata_start[i][1];
|
||||
cl->next = cdata_list;
|
||||
cl->cd = cdata_alloc(n);
|
||||
hfree(n);
|
||||
cl->gauge = cdata_start[i][2][0] == 'g' ? 1 : 0;
|
||||
cdata_list = cl;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
void status_atend(void)
|
||||
{
|
||||
struct cdata_list_t *cl, *cl_next;
|
||||
|
||||
for (cl = cdata_list; (cl); cl = cl_next) {
|
||||
cl_next = cl->next;
|
||||
cdata_free(cl->cd);
|
||||
hfree(cl);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,5 +19,6 @@ extern char *status_json_string(int no_cache, int periodical);
|
|||
extern int status_dump_file(void);
|
||||
|
||||
extern void status_init(void);
|
||||
extern void status_atend(void);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue