- (with-foreign-object (q 'g-signal-query)
- (g-signal-query signal-id q)
- (with-foreign-object (params 'g-value (+ 1 (foreign-slot-value q 'g-signal-query :n-params)))
- (set-g-value (mem-aref params 'g-value 0) object (g-type-from-object (pointer object)) :zero-g-value t)
- (iter (for i from 0 below (foreign-slot-value q 'g-signal-query :n-params))
+ (let ((params-count (length (signal-info-param-types object))))
+ (with-foreign-object (params 'g-value (1+ params-count))
+ (set-g-value (mem-aref params 'g-value 0) object object-type :zero-g-value t)
+ (iter (for i from 0 below params-count)