plugins/mono/loader/signal-glue.c

Tue, 14 Feb 2006 05:43:43 +0000

author
Richard Laager <rlaager@pidgin.im>
date
Tue, 14 Feb 2006 05:43:43 +0000
changeset 13281
3558cb15ebb9
parent 11980
fe5c2c58508c
permissions
-rw-r--r--

[gaim-migrate @ 15646]
Always show a vertical scrollbar on conversations imhtmls. This will solve the shrinking conversation window bug. I chose this approach instead of saving the size of the window (as I had previous talked about), as this prevents the contents of the scrollback from rewrapping when the scrollbars appear or disappear. It also just seems to feel like the right thing to do, but maybe that's me being lazy.

11660
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
1 #include "mono-glue.h"
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
2 #include "mono-helper.h"
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
3 #include "debug.h"
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
4 #include "blist.h"
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
5 #include "signals.h"
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
6 #include "value.h"
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
7
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
8 typedef struct {
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
9 MonoObject *func;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
10 char *signal;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
11 GaimValue **values;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
12 GaimValue *ret_value;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
13 int num_vals;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
14 } SignalData;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
15
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
16 static GaimCallback get_callback(SignalData *sig_data);
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
17
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
18 static gpointer dispatch_callback(SignalData *sig_data, int num_vals, ...)
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
19 {
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
20 MonoArray *array;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
21 MonoObject *obj;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
22 int i;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
23 gpointer meth_args[1];
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
24 gpointer gaim_obj;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
25
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
26 va_list args;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
27
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
28 va_start(args, num_vals);
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
29
11980
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
30 array = mono_array_new(ml_get_domain(), mono_get_object_class(), num_vals);
11660
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
31
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
32 for (i = 0; i < num_vals; i++) {
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
33 if (gaim_value_get_type(sig_data->values[i]) == GAIM_TYPE_SUBTYPE) {
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
34 gaim_obj = va_arg(args, gpointer);
11980
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
35 obj = ml_object_from_gaim_subtype(gaim_value_get_subtype(sig_data->values[i]), gaim_obj);
11660
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
36 mono_array_set(array, MonoObject*, i, obj);
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
37 } else {
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
38 gaim_obj = va_arg(args, gpointer);
11980
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
39 obj = ml_object_from_gaim_type(gaim_value_get_type(sig_data->values[i]), gaim_obj);
11660
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
40 mono_array_set(array, MonoObject*, i, obj);
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
41 }
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
42 }
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
43
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
44 va_end(args);
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
45
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
46 meth_args[0] = array;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
47
11980
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
48 return ml_delegate_invoke(sig_data->func, meth_args);
11660
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
49 }
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
50
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
51 static void cb_void__pointer(void *arg1, void *data)
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
52 {
11980
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
53 dispatch_callback((SignalData*)data, ((SignalData*)data)->num_vals, arg1);
11660
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
54 }
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
55
11980
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
56 static void cb_void__pointer_pointer_pointer(void *arg1, void *arg2, void *arg3, void *data)
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
57 {
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
58 dispatch_callback((SignalData*)data, ((SignalData*)data)->num_vals, arg1, arg2, arg3);
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
59 }
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
60
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
61
11660
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
62 int gaim_signal_connect_glue(MonoObject* h, MonoObject *plugin, MonoString *signal, MonoObject *func)
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
63 {
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
64 char *sig;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
65 void **instance = NULL;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
66 SignalData *sig_data;
11980
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
67 GaimMonoPlugin *mplug;
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
68 MonoClass *klass;
11660
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
69
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
70 sig = mono_string_to_utf8(signal);
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
71 gaim_debug(GAIM_DEBUG_INFO, "mono", "connecting signal: %s\n", sig);
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
72
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
73 instance = (void*)mono_object_unbox(h);
11980
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
74
11660
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
75 sig_data = g_new0(SignalData, 1);
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
76
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
77 sig_data->func = func;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
78 sig_data->signal = sig;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
79
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
80 gaim_signal_get_values(*instance, sig, &sig_data->ret_value, &sig_data->num_vals, &sig_data->values);
11980
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
81
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
82 klass = mono_object_get_class(plugin);
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
83
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
84 mplug = ml_find_plugin_by_class(klass);
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
85
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
86 mplug->signal_data = g_list_append(mplug->signal_data, (gpointer)sig_data);
11660
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
87
11980
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
88 return gaim_signal_connect(*instance, sig, (gpointer)klass, get_callback(sig_data), (gpointer)sig_data);
11660
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
89 }
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
90
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
91 static int determine_index(GaimType type)
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
92 {
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
93 switch (type) {
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
94 case GAIM_TYPE_SUBTYPE:
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
95 case GAIM_TYPE_STRING:
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
96 case GAIM_TYPE_OBJECT:
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
97 case GAIM_TYPE_POINTER:
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
98 case GAIM_TYPE_BOXED:
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
99 return 1;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
100 break;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
101 default:
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
102 return type;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
103 break;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
104 }
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
105 }
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
106
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
107 static gpointer callbacks[]= {
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
108 NULL,
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
109 cb_void__pointer,
11980
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
110 NULL,
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
111 cb_void__pointer_pointer_pointer
11660
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
112 };
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
113
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
114 static int callbacks_array_size = sizeof(callbacks) / sizeof(GaimCallback);
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
115
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
116
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
117 static GaimCallback get_callback(SignalData *sig_data)
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
118 {
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
119 int i, index = 0;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
120
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
121 if (sig_data->ret_value == NULL)
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
122 index = 0;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
123 else
11980
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
124 index = determine_index(gaim_value_get_type(sig_data->ret_value));
11660
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
125
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
126 for (i = 0; i < sig_data->num_vals; i++) {
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
127 index += determine_index(gaim_value_get_type(sig_data->values[i]));
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
128 }
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
129
11980
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
130 gaim_debug(GAIM_DEBUG_INFO, "mono", "get_callback index = %d\n", index);
fe5c2c58508c [gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents: 11952
diff changeset
131
11660
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
132 if (index >= callbacks_array_size || callbacks[index] == NULL) {
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
133 gaim_debug(GAIM_DEBUG_ERROR, "mono", "couldn't find a callback function for signal: %s\n", sig_data->signal);
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
134 return NULL;
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
135 }
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
136
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
137 gaim_debug(GAIM_DEBUG_MISC, "mono", "using callback at index: %d\n", index);
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
138 return GAIM_CALLBACK(callbacks[index]);
a7cf8f7d43b3 [gaim-migrate @ 13945]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
diff changeset
139 }

mercurial