-void callback_marshal (guint callback_id, GValue *return_value,
- guint n_params, const GValue *param_values)
-{
-#ifdef CMUCL
- funcall3 (callback_trampoline, alloc_number ((unsigned int)callback_id),
- alloc_cons (alloc_number (n_params), alloc_sap (param_values)),
- alloc_sap (return_value));
-#elif defined(CLISP)
- callback_trampoline ((unsigned long)callback_id,
- n_params, (unsigned int)param_values,
- (unsigned int)return_value);
-#endif
-}
-
-void destroy_notify (gpointer data)
-{
-#ifdef CMUCL
- funcall1 (destroy_user_data, alloc_number ((unsigned long)data));
-#elif defined(CLISP)
- destroy_user_data ((unsigned long)data);
-#endif
-}
-
-/* #ifndef CMUCL */
-/* void* */
-/* destroy_notify_address () */
-/* { */
-/* return (void*)destroy_notify; */
-/* } */
-/* #endif */
-
-
-
-void closure_callback_marshal (GClosure *closure,
- GValue *return_value,
- guint n_params,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data)
-{
- callback_marshal ((guint)closure->data, return_value, n_params, param_values);
-}
-
-void closure_destroy_notify (gpointer data, GClosure *closure)
-{
- destroy_notify (data);
-}