srfi-170: Memory handling improvements
This commit is contained in:
parent
e6eca190e3
commit
34a6543e48
21
srfi/170.scm
21
srfi/170.scm
|
|
@ -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)))
|
||||||
(cond ((> handle 0) (c-close handle) #f)
|
(handle (c-open file-info:fname/port 2))
|
||||||
(else #t))))
|
(result
|
||||||
|
(cond ((> handle 0) (c-close handle) #f)
|
||||||
|
(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)))
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
0.2.1
|
0.2.3
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue