pattern.scm (pattern->format): Properly free returned pointer.
parent
a37ce1347a
commit
a36c7edf13
|
@ -99,6 +99,8 @@ RETURN-TYPE and accept arguments of ARG-TYPES."
|
|||
(define-foreign fontconfig-pattern-get
|
||||
int "FcPatternGet" `(* * ,int *))
|
||||
|
||||
(define-foreign libc-free void "free" '(*))
|
||||
|
||||
;;;
|
||||
;;; Object Set
|
||||
;;;
|
||||
|
|
|
@ -119,13 +119,14 @@
|
|||
|
||||
;; https://www.freedesktop.org/software/fontconfig/fontconfig-devel/fcpatternformat.html
|
||||
(define* (pattern->format pattern #:optional (format "%{=fclist}"))
|
||||
(let ((ptr (ffi:fontconfig-pattern-format
|
||||
(unwrap-pattern pattern) (string->pointer format))))
|
||||
(if (null-pointer? ptr)
|
||||
(error "pattern->format" "invalid format")
|
||||
(pointer->string ptr))
|
||||
;; FIXME: How to FREE ptr!
|
||||
))
|
||||
(let* ((ptr (ffi:fontconfig-pattern-format
|
||||
(unwrap-pattern pattern) (string->pointer format)))
|
||||
(formatted
|
||||
(if (null-pointer? ptr)
|
||||
(error "pattern->format" "invalid format")
|
||||
(pointer->string ptr))))
|
||||
(ffi:libc-free ptr)
|
||||
formatted))
|
||||
|
||||
(define %fc-types
|
||||
'(fc-unknown ; -1
|
||||
|
|
Loading…
Reference in New Issue