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);