From ff4da129b6924ff1251a46188e0a2ba28519cd74 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 11 May 2010 08:49:44 +0300 Subject: [PATCH] MODULE_CONTEXT() now returns NULL if the whole module hasn't been registered yet. This fixes a crash with thread handling. --HG-- branch : HEAD --- src/lib/module-context.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/module-context.h b/src/lib/module-context.h index dc834a6633..2603cf06f7 100644 --- a/src/lib/module-context.h +++ b/src/lib/module-context.h @@ -46,9 +46,10 @@ COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE(OBJ_REGISTER(obj), (id_ctx).reg) #define MODULE_CONTEXT(obj, id_ctx) \ + (unlikely(!(id_ctx).id.module_id_set) ? NULL : \ (*((void **)array_idx_modifiable(&(obj)->module_contexts, \ (id_ctx).id.module_id) + \ - OBJ_REGISTER_COMPATIBLE(obj, id_ctx))) + OBJ_REGISTER_COMPATIBLE(obj, id_ctx)))) #ifdef HAVE_TYPEOF # define MODULE_CONTEXT_DEFINE(_name, _reg) \ -- 2.47.3