X-Git-Url: https://pd.if.org/git/?p=pdclib;a=blobdiff_plain;f=functions%2Fstdlib%2Fatexit.c;h=0d61e32a818f39c9f6645f279bd6331ab5bfdb4a;hp=14363566a8147dba4f6c6c7962a9c62ea26eb61f;hb=0788e1f853cae7be12203116b0d277ab1d653afb;hpb=0c546f2bbd0201af8b107f896eac860a830d9960 diff --git a/functions/stdlib/atexit.c b/functions/stdlib/atexit.c index 1436356..0d61e32 100644 --- a/functions/stdlib/atexit.c +++ b/functions/stdlib/atexit.c @@ -12,20 +12,18 @@ #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; + _PDCLIB_regstack[ --_PDCLIB_regptr ] = func; return 0; } }