/* $Id$ */
-/* Release $Name$ */
-
/* atexit( void (*)( void ) )
This file is part of the Public Domain C Library (PDCLib).
#ifndef REGTEST
-extern struct _PDCLIB_exitfunc_t * regstack;
+extern void (*_PDCLIB_regstack[])( void );
+extern size_t _PDCLIB_regptr;
int atexit( void (*func)( void ) )
{
- struct _PDCLIB_exitfunc_t * regfunc = (struct _PDCLIB_exitfunc_t *)malloc( sizeof( struct _PDCLIB_exitfunc_t ) );
- if ( regfunc == NULL )
+ if ( _PDCLIB_regptr == 0 )
{
return -1;
}
else
{
- regfunc->func = func;
- regfunc->next = regstack;
- regstack = regfunc;
- return 0;
+ _PDCLIB_regstack[ --_PDCLIB_regptr ] = func;
+ return 0;
}
}
static int flags[ 32 ];
-static void counthandler()
+static void counthandler( void )
{
- static int rc = 0;
- flags[ rc ] = rc;
- ++rc;
+ static int count = 0;
+ flags[ count ] = count;
+ ++count;
}
-static void checkhandler()
+static void checkhandler( void )
{
for ( int i = 0; i < 31; ++i )
{
}
}
-int main()
+int main( void )
{
- BEGIN_TESTS;
TESTCASE( atexit( &checkhandler ) == 0 );
for ( int i = 0; i < 31; ++i )
{