-(defmacro with-gvalue ((gvalue type &optional (value nil value-p)) &body body)
- `(let ((,gvalue ,(if value-p
- `(gvalue-new ',type ,value)
- `(gvalue-new ',type ,value))))
+(defbinding (gvalue-p "g_type_check_value") () boolean
+ (location pointer))
+
+(defmacro with-gvalue ((gvalue &optional type value) &body body)
+ `(let ((,gvalue ,(if type
+ `(gvalue-new ,type ,value)
+ `(gvalue-new))))