summaryrefslogtreecommitdiff
path: root/src/libwapcaplet.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libwapcaplet.c')
-rw-r--r--src/libwapcaplet.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/libwapcaplet.c b/src/libwapcaplet.c
index 9bc1fc9..34a72cd 100644
--- a/src/libwapcaplet.c
+++ b/src/libwapcaplet.c
@@ -271,12 +271,22 @@ lwc_iterate_strings(lwc_iteration_callback_fn cb, void *pw)
{
lwc_hash n;
lwc_string *str;
+ bool found = false;
if (ctx == NULL)
return;
for (n = 0; n < ctx->bucketcount; ++n) {
- for (str = ctx->buckets[n]; str != NULL; str = str->next)
+ for (str = ctx->buckets[n]; str != NULL; str = str->next) {
+ found = true;
cb(str, pw);
+ }
+ }
+
+ if (found == false) {
+ /* We found no strings, so remove the global context. */
+ free(ctx->buckets);
+ free(ctx);
+ ctx = NULL;
}
}