From abd4a82f9f4871996d7bf2b0bad65342d9c6b92b Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sat, 17 Jan 2009 20:10:56 -0600 Subject: [PATCH] Clean up stack shuffling in libc --- basis/libc/libc.factor | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/basis/libc/libc.factor b/basis/libc/libc.factor index 506f6b8b6f..45365d4296 100644 --- a/basis/libc/libc.factor +++ b/basis/libc/libc.factor @@ -52,13 +52,13 @@ M: realloc-error summary : malloc ( size -- alien ) - (malloc) check-ptr - dup add-malloc ; + (malloc) check-ptr add-malloc ; : calloc ( count size -- alien ) - (calloc) check-ptr - dup add-malloc ; + (calloc) check-ptr add-malloc ; : realloc ( alien size -- newalien ) over malloc-exists? [ realloc-error ] unless - dupd (realloc) check-ptr - swap delete-malloc - dup add-malloc ; + [ drop ] [ (realloc) check-ptr ] 2bi + [ delete-malloc ] [ add-malloc ] bi* ; : free ( alien -- ) - dup delete-malloc - (free) ; + [ delete-malloc ] [ (free) ] bi ; : memcpy ( dst src size -- ) "void" "libc" "memcpy" { "void*" "void*" "ulong" } alien-invoke ;