-(define-parse-method g-object (&optional (sub-type 'g-object))
- (make-instance 'foreign-g-object-type :sub-type sub-type))
+(define-parse-method g-object (&rest args)
+ (let* ((sub-type (first (remove-if #'keywordp args)))
+ (flags (remove-if-not #'keywordp args))
+ (already-referenced (not (null (find :already-referenced flags)))))
+ (make-instance 'foreign-g-object-type :sub-type sub-type :already-referenced already-referenced)))