Einige mixed ersetzt

Dadurch konnten auch ein paar Abfragen vereinfacht werden.

Change-Id: Ic9ca9da30cfbd3cd22cae21a41db02746dc457e7
diff --git a/doc/std/hooks b/doc/std/hooks
index fcc4b37..b0d143e 100644
--- a/doc/std/hooks
+++ b/doc/std/hooks
@@ -264,7 +264,7 @@
     'offerstate': 0 (nicht verfuegbar), 1 (verfuegbar)
 
 
-  * int HRegisterToHook(int hookid, mixed consumer, int hookprio,
+  * int HRegisterToHook(int hookid, object|closure consumer, int hookprio,
                         int consumertype, int timeInSeconds);
     
     Registriert ein Objekt oder eine Closure als Hook-Konsument.
@@ -307,7 +307,7 @@
           -7 : zuviele Hooks registriert / kein Hookeintrag frei
 
 
-  * int HUnregisterFromHook(int hookid, mixed consumer);
+  * int HUnregisterFromHook(int hookid, object|closure consumer);
 
     Hebt die Registrierung von <consumer> fuer einen bestimmten Hook-Typ 
     wieder auf.
@@ -351,7 +351,7 @@
     1 zurueck.
 
 
-  * int HIsHookConsumer(int hookid, mixed consumer);
+  * int HIsHookConsumer(int hookid, object|closure consumer);
     Ist <consumer> ein Objekt, liefert die Methode die Anzahl, wie oft dieses
     Objekt (mit verschiedenen Closures) fuer den Hook <hookid> eingetragen 
     ist.
diff --git a/std/hook_provider.c b/std/hook_provider.c
index 0df3e3d..b9912af 100644
--- a/std/hook_provider.c
+++ b/std/hook_provider.c
@@ -167,7 +167,7 @@
 //          NEVER return the original to an external caller!
 // NOTE: whoever has the cl from hook_entry_s can call it, even if the lfun
 //       is private (and this object the only one knowing it).
-protected mixed * hookConsumerInfo(int hookid, object|closure consumer)
+protected struct hook_entry_s* hookConsumerInfo(int hookid, object|closure consumer)
 {
   closure filter_cl;
 
@@ -201,7 +201,7 @@
   return result;
 }
 
-int HIsHookConsumer(int hookid, mixed consumer) {
+int HIsHookConsumer(int hookid, object|closure consumer) {
   return sizeof(hookConsumerInfo(hookid,consumer)) != 0;
 }
 
@@ -209,12 +209,12 @@
   return m_indices(hookMapping);
 }
 
-int HUnregisterFromHook(int hookid, mixed consumer) {
+int HUnregisterFromHook(int hookid, object|closure consumer) {
 
   H_DMSG(sprintf("HUnregisterFromHook hookid %d consumer %O\n",hookid,consumer));
   if (objectp(consumer))
     consumer = symbol_function("HookCallback", consumer);
-  if (!closurep(consumer))
+  if (!consumer)
     return 0;
 
   struct hook_entry_s *info = hookConsumerInfo(hookid,consumer);
@@ -253,11 +253,11 @@
   return 1;
 }
 
-int HRegisterToHook(int hookid, mixed consumer, int hookprio,
+int HRegisterToHook(int hookid, object|closure consumer, int hookprio,
                        int consumertype, int timeInSeconds) {
   int ret, regtime;
 
-  if (!closurep(consumer) && !objectp(consumer))
+  if (!consumer)
     raise_error(sprintf("Wrong argument %.50O to HRegisterToHook(): consumer "
           "must be closure or object.\n",consumer));
 
@@ -360,20 +360,20 @@
 }
 
 // Conveniences wrapper for simple listener hooks
-int HRegisterListener(int hookid, mixed consumer)
+int HRegisterListener(int hookid, object|closure consumer)
 {
   return HRegisterToHook(hookid, consumer, H_HOOK_OTHERPRIO(2), H_LISTENER, 0);
 }
 
 // Cnveniences wrapper for simple modificator hooks
-int HRegisterModifier(int hookid, mixed consumer)
+int HRegisterModifier(int hookid, object|closure consumer)
 {
   return HRegisterToHook(hookid, consumer, H_HOOK_OTHERPRIO(2),
                          H_HOOK_MODIFICATOR, 0);
 }
 
 // surveyors are asked for cancellation permittance
-protected int askSurveyorsForCancelAllowance(mixed surveyors,
+protected int askSurveyorsForCancelAllowance(struct hook_entry_s* surveyors,
   object modifiyingOb,mixed data,int hookid,int prio,object hookOb){
 
   foreach(struct hook_entry_s surveyor : surveyors) {
@@ -390,7 +390,7 @@
 }
 
 // surveyors are asked for data change permittance
-protected int askSurveyorsForModificationAllowance(mixed surveyors,
+protected int askSurveyorsForModificationAllowance(struct hook_entry_s* surveyors,
   object modifiyingOb,mixed data,int hookid,int prio,object hookOb){
 
   foreach(struct hook_entry_s surveyor : surveyors) {
diff --git a/sys/hook.h b/sys/hook.h
index d62cb90..928514e 100644
--- a/sys/hook.h
+++ b/sys/hook.h
@@ -78,14 +78,14 @@
 int* HListHooks();
 
 // register to hook
-int HRegisterToHook(int hookid, mixed consumer, int hookprio,
+int HRegisterToHook(int hookid, object|closure consumer, int hookprio,
     int consumertype, int timeInSeconds);
 
 // unregister from hook
-int HUnregisterFromHook(int hookid, mixed consumer);
+int HUnregisterFromHook(int hookid, object|closure consumer);
 
 // check wether object is a consumer for a given hook
-int HIsHookConsumer(int hookid, mixed consumer);
+int HIsHookConsumer(int hookid, object|closure consumer);
 
 // offer a hook or stop offering it
 protected void offerHook(int hookid, int offerstate);