srfi-170: Memory handling improvements

This commit is contained in:
retropikzel 2026-07-31 06:39:49 +03:00
parent e6eca190e3
commit 34a6543e48
2 changed files with 14 additions and 9 deletions

View File

@ -151,10 +151,14 @@
(follow? file-info:follow?)) (follow? file-info:follow?))
(define (file-info-directory? file-info) (define (file-info-directory? file-info)
(let ((handle (c-open (string->c-bytevector (let* ((file-info:fname/port*
(file-info:fname/port file-info)) 2))) (string->c-bytevector (file-info:fname/port file-info)))
(handle (c-open file-info:fname/port 2))
(result
(cond ((> handle 0) (c-close handle) #f) (cond ((> handle 0) (c-close handle) #f)
(else #t)))) (else #t))))
(c-bytevector-free file-info:fname/port*)
result))
(define-c-struct-type stat-struct (define-c-struct-type stat-struct
`((st_dev int) `((st_dev int)
@ -252,8 +256,10 @@
(c-bytevector-free error-pointer))) (c-bytevector-free error-pointer)))
(define (create-hard-link old-fname new-fname) (define (create-hard-link old-fname new-fname)
(c-link (string->c-bytevector old-fname) (let ((old-fname* (string->c-bytevector old-fname))
(string->c-bytevector new-fname))) (new-fname* (string->c-bytevector new-fname)))
(c-link old-fname* new-fname*)
(c-bytevector-free old-fname* new-fname*)))
(define (create-symlink old-fname new-fname) (define (create-symlink old-fname new-fname)
(c-slink (string->c-bytevector old-fname) (c-slink (string->c-bytevector old-fname)
@ -531,8 +537,7 @@
(append result (append result
(list (c-bytevector-ref groups-pointer (list (c-bytevector-ref groups-pointer
'int 'int
(* (c-type-size 'int) count) (* (c-type-size 'int) count)))))))
))))))
(define (user-supplementary-gids) (define (user-supplementary-gids)
(let* ((group-count (c-getgroups 0 (c-bytevector-null))) (let* ((group-count (c-getgroups 0 (c-bytevector-null)))

View File

@ -1 +1 @@
0.2.1 0.2.3