summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/rm.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/rm.c b/src/rm.c
index 2da31aeb8..dbf1d42af 100644
--- a/src/rm.c
+++ b/src/rm.c
@@ -529,11 +529,16 @@ remove_cwd_entries (void)
struct HT *ht = NULL;
/* FIXME: describe */
- struct obstack entry_name_pool;
+ static struct obstack entry_name_pool;
+ static int first_call = 1;
enum RM_status status = RM_OK;
- obstack_init (&entry_name_pool);
+ if (first_call)
+ {
+ first_call = 0;
+ obstack_init (&entry_name_pool);
+ }
if (dirp)
{
@@ -674,7 +679,8 @@ remove_cwd_entries (void)
hash_free (ht);
}
- obstack_free (&entry_name_pool, NULL);
+ if (obstack_object_size (&entry_name_pool) > 0)
+ obstack_free (&entry_name_pool, obstack_base (&entry_name_pool));
return status;
}