summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-06-19 16:57:29 +0200
committerLennart Poettering <lennart@poettering.net>2010-06-19 16:57:29 +0200
commit399ab2b1ac07be5afa9708b3280d4e1a4cceb5b8 (patch)
treef5d89000a155cbf8c4703cfffe05b9cc9e8a51c4
parent0ca3f374f9d7c166ac5b391ec7208f6de7274e7f (diff)
unit: make unit casts typesafe
-rw-r--r--src/manager.c10
-rw-r--r--src/unit.h4
2 files changed, 7 insertions, 7 deletions
diff --git a/src/manager.c b/src/manager.c
index da42d7d78b..554dd8e866 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -271,7 +271,7 @@ static unsigned manager_dispatch_cleanup_queue(Manager *m) {
while ((meta = m->cleanup_queue)) {
assert(meta->in_cleanup_queue);
- unit_free(UNIT(meta));
+ unit_free((Unit*) meta);
n++;
}
@@ -361,7 +361,7 @@ static unsigned manager_dispatch_gc_queue(Manager *m) {
while ((meta = m->gc_queue)) {
assert(meta->in_gc_queue);
- unit_gc_sweep(UNIT(meta), gc_marker);
+ unit_gc_sweep((Unit*) meta, gc_marker);
LIST_REMOVE(Meta, gc_queue, m->gc_queue, meta);
meta->in_gc_queue = false;
@@ -372,7 +372,7 @@ static unsigned manager_dispatch_gc_queue(Manager *m) {
meta->gc_marker == gc_marker + GC_OFFSET_UNSURE) {
log_debug("Collecting %s", meta->id);
meta->gc_marker = gc_marker + GC_OFFSET_BAD;
- unit_add_to_cleanup_queue(UNIT(meta));
+ unit_add_to_cleanup_queue((Unit*) meta);
}
}
@@ -1439,7 +1439,7 @@ unsigned manager_dispatch_load_queue(Manager *m) {
while ((meta = m->load_queue)) {
assert(meta->in_load_queue);
- unit_load(UNIT(meta));
+ unit_load((Unit*) meta);
n++;
}
@@ -1585,7 +1585,7 @@ unsigned manager_dispatch_dbus_queue(Manager *m) {
while ((meta = m->dbus_unit_queue)) {
assert(meta->in_dbus_queue);
- bus_unit_send_change_signal(UNIT(meta));
+ bus_unit_send_change_signal((Unit*) meta);
n++;
}
diff --git a/src/unit.h b/src/unit.h
index c5be858923..fb158d511d 100644
--- a/src/unit.h
+++ b/src/unit.h
@@ -336,14 +336,14 @@ extern const UnitVTable * const unit_vtable[_UNIT_TYPE_MAX];
/* For casting a unit into the various unit types */
#define DEFINE_CAST(UPPERCASE, MixedCase) \
static inline MixedCase* UPPERCASE(Unit *u) { \
- if (!u || u->meta.type != UNIT_##UPPERCASE) \
+ if (_unlikely_(!u || u->meta.type != UNIT_##UPPERCASE)) \
return NULL; \
\
return (MixedCase*) u; \
}
/* For casting the various unit types into a unit */
-#define UNIT(u) ((Unit*) (u))
+#define UNIT(u) ((Unit*) (&(u)->meta))
DEFINE_CAST(SOCKET, Socket);
DEFINE_CAST(TIMER, Timer);