2005-05-05 03:12:37 -04:00
|
|
|
! Copyright (C) 2004, 2005 Mackenzie Straight.
|
2006-01-28 15:49:31 -05:00
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2006-03-08 16:06:13 -05:00
|
|
|
IN: libc
|
2006-09-06 18:06:11 -04:00
|
|
|
USING: alien errors kernel math prettyprint ;
|
2005-05-05 03:12:37 -04:00
|
|
|
|
2005-06-12 03:38:57 -04:00
|
|
|
LIBRARY: libc
|
2006-03-08 16:06:13 -05:00
|
|
|
FUNCTION: void* malloc ( ulong size ) ;
|
|
|
|
FUNCTION: void* calloc ( ulong count, ulong size ) ;
|
|
|
|
FUNCTION: void free ( void* ptr ) ;
|
|
|
|
FUNCTION: void* realloc ( void* ptr, ulong size ) ;
|
|
|
|
FUNCTION: void memcpy ( void* dst, void* src, ulong size ) ;
|
2005-05-05 03:12:37 -04:00
|
|
|
|
2006-08-01 04:45:05 -04:00
|
|
|
TUPLE: check-ptr ;
|
2006-09-06 18:06:11 -04:00
|
|
|
|
2006-08-16 21:55:53 -04:00
|
|
|
: check-ptr ( c-ptr -- c-ptr ) [ <check-ptr> throw ] unless* ;
|
2006-07-04 17:24:15 -04:00
|
|
|
|
2006-09-06 18:06:11 -04:00
|
|
|
M: check-ptr summary
|
|
|
|
drop "Memory allocation failed" ;
|
|
|
|
|
2006-08-15 16:29:35 -04:00
|
|
|
: with-malloc ( size quot -- )
|
2006-07-04 18:10:42 -04:00
|
|
|
swap 1 calloc check-ptr [ swap call ] keep free ; inline
|