From d4f4418a3709df05aae88e08f6e56b0bf60b7a4f Mon Sep 17 00:00:00 2001 From: espen Date: Wed, 30 Aug 2006 09:52:10 +0000 Subject: [PATCH] Modified to not use custom C functions to create GClosures --- glib/gcallback.lisp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/glib/gcallback.lisp b/glib/gcallback.lisp index 2ee583f..10f5aab 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.36 2006-07-14 10:51:07 espen Exp $ +;; $Id: gcallback.lisp,v 1.37 2006-08-30 09:52:10 espen Exp $ (in-package "GLIB") @@ -360,11 +360,21 @@ (instance ginstance) (handler-id unsigned-long)) -(defbinding (callback-closure-new "clg_callback_closure_new") () gclosure +(defbinding (closure-new "g_cclosure_new") () gclosure + ((make-pointer #xFFFFFFFF) pointer) (callback-id unsigned-int) - (callback callback) (destroy-notify callback)) +(defbinding closure-set-meta-marshal () nil + (gclosure gclosure) + (callback-id unsigned-int) + (callback callback)) + +(defun callback-closure-new (callback-id callback destroy-notify) + (let ((gclosure (closure-new callback-id destroy-notify))) + (closure-set-meta-marshal gclosure callback-id callback) + gclosure)) + (defun make-callback-closure (function marshaller) (let ((callback-id (register-callback-function function))) (values -- 2.11.0