X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firhooks.c;h=b32b91e76b0b798916d37730a56f3f68c436470a;hb=337d80943727432a91e53ef5b5554eac00a7b7da;hp=490b77ed57363b15da6048760d7ce079e150b4f0;hpb=8ccfe04ca59ff56fc32b2323b80cee2a5194694d;p=libfirm diff --git a/ir/ir/irhooks.c b/ir/ir/irhooks.c index 490b77ed5..b32b91e76 100644 --- a/ir/ir/irhooks.c +++ b/ir/ir/irhooks.c @@ -21,27 +21,28 @@ * @file * @brief Generic hooks for various libFirm functions. * @author Michael Beck - * @version $Id$ */ #include "config.h" +#include + #include "irhooks.h" -/* the hooks */ hook_entry_t *hooks[hook_last]; -/* register a hook */ void register_hook(hook_type_t hook, hook_entry_t *entry) { /* check if a hook function is specified. It's a union, so no matter which one */ if (! entry->hook._hook_turn_into_id) return; + /* hook should not be registered yet */ + assert(entry->next == NULL && hooks[hook] != entry); + entry->next = hooks[hook]; hooks[hook] = entry; } -/* unregister a hook */ void unregister_hook(hook_type_t hook, hook_entry_t *entry) { hook_entry_t *p;