summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-05-09 23:41:03 +0200
committerLennart Poettering <lennart@poettering.net>2010-05-09 23:41:03 +0200
commit6e620becc8543e9ea8381fcd779dd932c2464749 (patch)
tree9857216e3fb71cf3ca3be4016fb285e3d910cc83
parenta06b0b562bc11e5ca2ea88074fb3b38f2503ed6b (diff)
swap: properly free instance data
-rw-r--r--swap.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/swap.c b/swap.c
index aacf0e8d55..5c161e10ca 100644
--- a/swap.c
+++ b/swap.c
@@ -40,6 +40,14 @@ static const UnitActiveState state_translation_table[_SWAP_STATE_MAX] = {
[SWAP_MAINTAINANCE] = UNIT_INACTIVE
};
+static void swap_done(Unit *u) {
+ Swap *s = SWAP(u);
+
+ assert(s);
+
+ free(s->what);
+}
+
static int swap_verify(Swap *s) {
bool b;
char *e;
@@ -398,8 +406,10 @@ const UnitVTable swap_vtable = {
.no_alias = true,
.no_instances = true,
+ .no_isolate = true,
.load = swap_load,
+ .done = swap_done,
.coldplug = swap_coldplug,
@@ -418,7 +428,6 @@ const UnitVTable swap_vtable = {
.bus_message_handler = bus_swap_message_handler,
- .shutdown = swap_shutdown,
-
- .enumerate = swap_enumerate
+ .enumerate = swap_enumerate,
+ .shutdown = swap_shutdown
};