directory: free empty directories after removing them (memleak)
dirvec_delete() does not free the object, we have to call directory_free() afterwards.
This commit is contained in:
parent
5d6f7803e1
commit
7dddd9beda
1
NEWS
1
NEWS
|
@ -8,6 +8,7 @@ ver 0.15.2 (2009/??/??)
|
|||
- flac: don't allocate cuesheet twice (memleak)
|
||||
* update: free empty path string (memleak)
|
||||
* update: free temporary string in container scan (memleak)
|
||||
* directory: free empty directories after removing them (memleak)
|
||||
|
||||
|
||||
ver 0.15.1 (2009/07/15)
|
||||
|
|
|
@ -73,9 +73,14 @@ directory_prune_empty(struct directory *directory)
|
|||
struct dirvec *dv = &directory->children;
|
||||
|
||||
for (i = dv->nr; --i >= 0; ) {
|
||||
directory_prune_empty(dv->base[i]);
|
||||
if (directory_is_empty(dv->base[i]))
|
||||
dirvec_delete(dv, dv->base[i]);
|
||||
struct directory *child = dv->base[i];
|
||||
|
||||
directory_prune_empty(child);
|
||||
|
||||
if (directory_is_empty(child)) {
|
||||
dirvec_delete(dv, child);
|
||||
directory_free(child);
|
||||
}
|
||||
}
|
||||
if (!dv->nr)
|
||||
dirvec_destroy(dv);
|
||||
|
|
Loading…
Reference in New Issue