X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/clg/blobdiff_plain/a92553bd87d94b64654a70a7293b3d46cfec4595..22fdd8b14d61f98355d776b7e91a56371883d25c:/glib/gcallback.lisp diff --git a/glib/gcallback.lisp b/glib/gcallback.lisp index fe27314..c6cdaea 100644 --- a/glib/gcallback.lisp +++ b/glib/gcallback.lisp @@ -20,7 +20,7 @@ ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -;; $Id: gcallback.lisp,v 1.30 2006/02/19 19:31:14 espen Exp $ +;; $Id: gcallback.lisp,v 1.33 2006/03/02 21:13:01 espen Exp $ (in-package "GLIB") @@ -29,6 +29,9 @@ (use-prefix "g") ;;;; Callback invokation +(deftype gclosure () 'pointer) +(register-type 'gclosure '|g_closure_get_type|) + (defun register-callback-function (function) (check-type function (or null symbol function)) (register-user-data function)) @@ -45,6 +48,7 @@ (define-callback closure-marshal nil (define-callback signal-emission-hook nil ((invocation-hint pointer) (n-params unsigned-int) (param-values pointer) (callback-id unsigned-int)) + (declare (ignore invocation-hint)) (callback-trampoline callback-id n-params param-values)) (defun callback-trampoline (callback-id n-params param-values &optional @@ -317,9 +321,6 @@ (defbinding signal-handler-is-connected-p () boolean (instance ginstance) (handler-id unsigned-int)) -(deftype gclosure () 'pointer) -(register-type 'gclosure '|g_closure_get_type|) - (defbinding (callback-closure-new "clg_callback_closure_new") () gclosure (callback-id unsigned-int) (callback callback) @@ -469,7 +470,7 @@ (defmacro define-callback-marshal (name return-type args &key (callback-id :last (:first `((callback-id unsigned-int) ,@(mapcar #'list names types))) (:last `(,@(mapcar #'list names types) (callback-id unsigned-int)))) (declare (ignore ,@ignore)) - (invoke-callback callback-id ',return-type ,@params)))) + (invoke-callback callback-id ',return-type ,@(nreverse params))))) (defmacro with-callback-function ((id function) &body body) `(let ((,id (register-callback-function ,function)))