From a7f241db3f1ae96ab2708092e1b31d2feb989947 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 21 Jul 2010 05:00:29 +0200 Subject: unit: deduce following unit value dynamically instead of statically, to avoid dangling pointers --- src/unit.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/unit.h') diff --git a/src/unit.h b/src/unit.h index f1171270f8..34e86d1086 100644 --- a/src/unit.h +++ b/src/unit.h @@ -176,9 +176,6 @@ struct Meta { /* GC queue */ LIST_FIELDS(Meta, gc_queue); - /* This follows another unit in state */ - Unit *following; - /* Used during GC sweeps */ unsigned gc_marker; @@ -313,6 +310,9 @@ struct UnitVTable { /* Called for each message received on the bus */ DBusHandlerResult (*bus_message_handler)(Unit *u, DBusConnection *c, DBusMessage *message); + /* Return the unit this unit is following */ + Unit *(*following)(Unit *u); + /* This is called for each unit type and should be used to * enumerate existing devices and load them. However, * everything that is loaded here should still stay in @@ -475,6 +475,8 @@ bool unit_need_daemon_reload(Unit *u); void unit_reset_maintenance(Unit *u); +Unit *unit_following(Unit *u); + const char *unit_type_to_string(UnitType i); UnitType unit_type_from_string(const char *s); -- cgit v1.2.3-54-g00ecf