pattern.scm, bindings.scm: Use make-pointer.

* fontconfig/pattern.scm: Replace define-wrapped-pointer-type with
  make-pointer.
* fontconfig/object-set.scm: Ditto.
master
nixo 2021-01-18 10:24:39 +01:00
parent bbc3a6bb9a
commit a37ce1347a
3 changed files with 18 additions and 11 deletions

View File

@ -74,6 +74,9 @@ RETURN-TYPE and accept arguments of ARG-TYPES."
(define fontconfig-pattern-destroy
(dynamic-func "FcPatternDestroy" (dynamic-link %libfontconfig)))
;; (define-foreign fontconfig-pattern-destroy
;; void "FcPatternDestroy" '(*))
(define-foreign fontconfig-pattern-add-string
int "FcPatternAddString" '(* * *))

View File

@ -24,16 +24,17 @@
unwrap-object-set
object-set-add!))
(define-wrapped-pointer-type <object-set>
object-set?
wrap-object-set unwrap-object-set
(lambda (pattern port)
(format port "#<object-set>")))
(define <object-set>
(make-record-type '<object-set> '(ptr)))
(define %make-object-set (record-constructor <object-set>))
(define unwrap-object-set (record-accessor <object-set> 'ptr))
(define (wrap-object-set ptr)
(%make-object-set
(make-pointer (pointer-address ptr) ffi:fontconfig-object-set-destroy)))
(define (make-object-set)
(let* ((ptr (ffi:fontconfig-object-set-create))
(object-set (wrap-object-set ptr)))
(set-pointer-finalizer! ptr ffi:fontconfig-object-set-destroy)
object-set))
(define (object-set-add! os attr)

View File

@ -47,10 +47,14 @@
histing verticallayout autohint outline scalable
minspace embolden embeddedbitmap decorative))
(define-wrapped-pointer-type <pattern>
pattern?
wrap-pattern unwrap-pattern
(lambda (pattern port) (format port "#<pattern>")))
(define <pattern>
(make-record-type '<pattern> '(ptr)))
(define %make-pattern (record-constructor <pattern>))
(define unwrap-pattern (record-accessor <pattern> 'ptr))
(define (wrap-pattern ptr)
(%make-pattern
(make-pointer (pointer-address ptr) ffi:fontconfig-pattern-destroy)))
(define symbol->pointer
(compose string->pointer symbol->string))
@ -86,7 +90,6 @@
(if (null-pointer? ptr)
(error "make-pattern" "failed to create pattern")
(wrap-pattern ptr))))
(set-pointer-finalizer! ptr ffi:fontconfig-pattern-destroy)
(map (lambda (args)
(apply (match args
(((? bool? attr) value) pattern-add-bool)