From b2a1858f8f66183db1d9619158c77b0bb43a5574 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Mon, 24 Aug 2009 20:33:27 -0500 Subject: [PATCH] Move a few more things over to new disposable protocol --- basis/checksums/openssl/openssl.factor | 8 ++++---- basis/io/backend/unix/multiplexers/epoll/epoll.factor | 2 +- basis/io/backend/unix/multiplexers/kqueue/kqueue.factor | 2 +- basis/io/backend/unix/multiplexers/multiplexers.factor | 6 +++--- basis/ui/pixel-formats/pixel-formats.factor | 8 +++++--- 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/basis/checksums/openssl/openssl.factor b/basis/checksums/openssl/openssl.factor index 58748b7c29..6f21d96e86 100644 --- a/basis/checksums/openssl/openssl.factor +++ b/basis/checksums/openssl/openssl.factor @@ -19,13 +19,13 @@ C: openssl-checksum ( -- ctx ) - "EVP_MD_CTX" - dup EVP_MD_CTX_init evp-md-context boa ; + evp-md-context new-disposable + "EVP_MD_CTX" dup EVP_MD_CTX_init >>handle ; -M: evp-md-context dispose +M: evp-md-context dispose* handle>> EVP_MD_CTX_cleanup drop ; : with-evp-md-context ( quot -- ) diff --git a/basis/io/backend/unix/multiplexers/epoll/epoll.factor b/basis/io/backend/unix/multiplexers/epoll/epoll.factor index e1428fee4d..98c48c113d 100644 --- a/basis/io/backend/unix/multiplexers/epoll/epoll.factor +++ b/basis/io/backend/unix/multiplexers/epoll/epoll.factor @@ -18,7 +18,7 @@ TUPLE: epoll-mx < mx events ; max-events epoll_create dup io-error >>fd max-events "epoll-event" >>events ; -M: epoll-mx dispose fd>> close-file ; +M: epoll-mx dispose* fd>> close-file ; : make-event ( fd events -- event ) "epoll-event" diff --git a/basis/io/backend/unix/multiplexers/kqueue/kqueue.factor b/basis/io/backend/unix/multiplexers/kqueue/kqueue.factor index 7bd157136a..f7b15beb54 100644 --- a/basis/io/backend/unix/multiplexers/kqueue/kqueue.factor +++ b/basis/io/backend/unix/multiplexers/kqueue/kqueue.factor @@ -17,7 +17,7 @@ TUPLE: kqueue-mx < mx events ; kqueue dup io-error >>fd max-events "kevent" >>events ; -M: kqueue-mx dispose fd>> close-file ; +M: kqueue-mx dispose* fd>> close-file ; : make-kevent ( fd filter flags -- event ) "kevent" diff --git a/basis/io/backend/unix/multiplexers/multiplexers.factor b/basis/io/backend/unix/multiplexers/multiplexers.factor index 844670d635..73d8a60310 100644 --- a/basis/io/backend/unix/multiplexers/multiplexers.factor +++ b/basis/io/backend/unix/multiplexers/multiplexers.factor @@ -1,12 +1,12 @@ ! Copyright (C) 2008 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: kernel accessors assocs sequences threads ; +USING: kernel accessors assocs sequences threads destructors ; IN: io.backend.unix.multiplexers -TUPLE: mx fd reads writes ; +TUPLE: mx < disposable fd reads writes ; : new-mx ( class -- obj ) - new + new-disposable H{ } clone >>reads H{ } clone >>writes ; inline diff --git a/basis/ui/pixel-formats/pixel-formats.factor b/basis/ui/pixel-formats/pixel-formats.factor index a280ab0666..b902521079 100644 --- a/basis/ui/pixel-formats/pixel-formats.factor +++ b/basis/ui/pixel-formats/pixel-formats.factor @@ -46,13 +46,15 @@ HOOK: (pixel-format-attribute) ui-backend ( pixel-format attribute-name -- value ERROR: invalid-pixel-format-attributes world attributes ; -TUPLE: pixel-format world handle ; +TUPLE: pixel-format < disposable world handle ; : ( world attributes -- pixel-format ) 2dup (make-pixel-format) - [ nip pixel-format boa ] [ invalid-pixel-format-attributes ] if* ; + [ pixel-format new swap >>handle swap >>world ] + [ invalid-pixel-format-attributes ] + ?if ; -M: pixel-format dispose +M: pixel-format dispose* [ (free-pixel-format) ] [ f >>handle drop ] bi ; : pixel-format-attribute ( pixel-format attribute-name -- value )