From 501357d833fff0409e52c1ecb81caaf2756d16f8 Mon Sep 17 00:00:00 2001 From: Dmitry Kalyanov Date: Mon, 9 Mar 2009 10:45:20 +0300 Subject: [PATCH] Do not call g-value-init when setting return-value of closures --- glib/gobject.foreign-closures.lisp | 2 +- glib/gobject.gvalue-parser.lisp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/glib/gobject.foreign-closures.lisp b/glib/gobject.foreign-closures.lisp index da0e731..1f87c70 100644 --- a/glib/gobject.foreign-closures.lisp +++ b/glib/gobject.foreign-closures.lisp @@ -28,7 +28,7 @@ (fn (get-stable-pointer-value function-id)) (fn-result (call-with-restarts fn args))) (when return-type - (set-g-value return-value fn-result return-type)))) + (set-g-value return-value fn-result return-type :g-value-init nil)))) (defun parse-closure-arguments (count-of-args args) (loop diff --git a/glib/gobject.gvalue-parser.lisp b/glib/gobject.gvalue-parser.lisp index f299f69..7d1873f 100644 --- a/glib/gobject.gvalue-parser.lisp +++ b/glib/gobject.gvalue-parser.lisp @@ -44,11 +44,11 @@ (+g-type-interface+ (parse-gvalue-object gvalue)) (t (error "Unknown type: ~A (~A)" type (g-type-name type)))))))) -(defun set-g-value (gvalue value type &key zero-g-value unset-g-value) +(defun set-g-value (gvalue value type &key zero-g-value unset-g-value (g-value-init t)) (cond (zero-g-value (g-value-zero gvalue)) (unset-g-value (g-value-unset gvalue))) - (g-value-init gvalue type) + (when g-value-init (g-value-init gvalue type)) (let ((fundamental-type (g-type-fundamental type))) (cond ((= type (g-strv-get-type)) (g-value-set-boxed gvalue (convert-to-foreign value 'glib:gstrv))) -- 1.7.10.4