From 7e9dbde99f4a3412867e415ee5f9fb0815b9db8a Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Tue, 11 Oct 2011 23:45:55 -0700 Subject: [PATCH] io.buffers: factor out buffer-read-unsafe word buffer-read-unsafe returns a length and a pointer into the buffer instead of a copy. --- basis/io/buffers/buffers.factor | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/basis/io/buffers/buffers.factor b/basis/io/buffers/buffers.factor index 562abad082..ec064069ca 100644 --- a/basis/io/buffers/buffers.factor +++ b/basis/io/buffers/buffers.factor @@ -44,13 +44,16 @@ M: buffer dispose* ptr>> free ; : buffer@ ( buffer -- alien ) [ pos>> ] [ ptr>> ] bi ; inline -: buffer-read ( n buffer -- byte-array ) +: buffer-read-unsafe ( n buffer -- n ptr ) [ buffer-length min ] keep - [ buffer@ ] [ buffer-consume ] 2bi - swap memory>byte-array ; + [ buffer@ ] [ buffer-consume ] 2bi ; inline + +: buffer-read ( n buffer -- byte-array ) + buffer-read-unsafe swap memory>byte-array ; HINTS: buffer-read fixnum buffer ; + : buffer-end ( buffer -- alien ) [ fill>> ] [ ptr>> ] bi ; inline