}
cur = g_list_next (cur);
}
+ if (record->addrs != NULL) {
+ /* Free addresses that we already proceed */
+ g_list_free (record->addrs);
+ record->addrs = NULL;
+ }
}
+
if (task->save.saved == 0) {
/* Call other filters */
task->save.saved = 1;
+ /* Note that here task MAY be destroyed */
process_filters (task);
}
}
cb->rec->task->save.saved--;
if (cb->rec->task->save.saved == 0 && cb->rec->callback) {
cb->rec->callback (cb->rec, cb->rec->task);
- if (cb->rec->addrs) {
- g_list_free (cb->rec->addrs);
- cb->rec->addrs = NULL;
- }
}
}