[Frugalware-git] firepl: fix memory leak in dpa
James Buren
ryuo at frugalware.org
Tue May 8 13:02:02 CEST 2012
Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=firepl.git;a=commitdiff;h=989b28d9785c4725078b98ec7ad93e6982f24e0c
commit 989b28d9785c4725078b98ec7ad93e6982f24e0c
Author: James Buren <ryuo at frugalware.org>
Date: Tue May 8 06:01:50 2012 -0500
fix memory leak in dpa
diff --git a/dpa.c b/dpa.c
index fad69c0..f5c3879 100644
--- a/dpa.c
+++ b/dpa.c
@@ -23,6 +23,8 @@ extern dpa *dpa_open(void)
self->size = DPA_DEFAULT_SIZE;
+ dpa_append(self,0);
+
return self;
}
@@ -43,14 +45,14 @@ extern void dpa_append(dpa *self,void *p)
++self->len;
}
-extern void **dpa_fetch(const dpa *self)
+extern void *dpa_fetch(const dpa *self)
{
assert(self);
return self->ptr;
}
-extern void **dpa_close(dpa *self,void (*func) (void *p))
+extern void *dpa_close(dpa *self,void (*func) (void *p))
{
size_t n;
void **p;
@@ -61,6 +63,8 @@ extern void **dpa_close(dpa *self,void (*func) (void *p))
{
for( n = 0 ; n < self->len ; ++n )
func(self->ptr[n]);
+
+ free(self->ptr);
p = 0;
}
diff --git a/dpa.h b/dpa.h
index f46305c..97824fe 100644
--- a/dpa.h
+++ b/dpa.h
@@ -4,5 +4,5 @@ typedef struct _dpa dpa;
extern dpa *dpa_open(void);
extern void dpa_append(dpa *self,void *p);
-extern void **dpa_fetch(const dpa *self);
-extern void **dpa_close(dpa *self,void (*func) (void *p));
+extern void *dpa_fetch(const dpa *self);
+extern void *dpa_close(dpa *self,void (*func) (void *p));
More information about the Frugalware-git
mailing list