- (%object-class-properties class)
- (map-c-array 'list #'identity array 'param length))))
-
-(defun query-object-type-dependencies (type-number)
- (delete-duplicates
- (reduce
- #'nconc
- (mapcar
- #'(lambda (param)
- ;; A gobject does not depend on it's supertypes due to forward
- ;; referenced superclasses
- (delete-if
- #'(lambda (type)
- (type-is-p type-number type))
- (type-hierarchy (param-type param))))
- (query-object-class-properties type-number)))))
+ (%object-class-list-properties class)
+ (unwind-protect
+ (let ((all-properties
+ (map-c-array 'list #'identity array 'param length)))
+ (if (not inherited-properties)
+ (delete-if
+ #'(lambda (param)
+ (not (eql type-number (param-owner-type param))))
+ all-properties)
+ all-properties))
+ (deallocate-memory array)))))