1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
diff --git a/bonobo-activation/bonobo-activation-base-service.c b/bonobo-activation/bonobo-activation-base-service.c
index d274378..609b565 100644
--- a/bonobo-activation/bonobo-activation-base-service.c
+++ b/bonobo-activation/bonobo-activation-base-service.c
@@ -160,21 +160,24 @@ bonobo_activation_registration_iterate (const BonoboActivationBaseService *base_
for (link = registries; link; link = link->next) {
RegistryInfo *ri;
- void (*func_ptr) ();
+ void (*func_ptr_2arg) (const BonoboActivationBaseServiceRegistry *, gpointer);
+ void (*func_ptr_4arg) (
+ const BonoboActivationBaseServiceRegistry *, const char *,
+ const BonoboActivationBaseService *, gpointer
+ );
ri = link->data;
- func_ptr = *(gpointer *) ((guchar *) ri->registry + offset);
-
- if (!func_ptr)
- continue;
-
switch (nargs) {
case 4:
- func_ptr (ri->registry, ior, base_service, ri->user_data);
+ func_ptr_4arg = *(gpointer *) ((guchar *) ri->registry + offset);
+ if (!func_ptr_4arg) continue;
+ func_ptr_4arg (ri->registry, ior, base_service, ri->user_data);
break;
case 2:
- func_ptr (ri->registry, ri->user_data);
+ func_ptr_2arg = *(gpointer *) ((guchar *) ri->registry + offset);
+ if (!func_ptr_2arg) continue;
+ func_ptr_2arg (ri->registry, ri->user_data);
break;
}
}
|