X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=functions%2Fstdlib%2Fqsort.c;h=3e349fb683179a2adbe9553c24a447256d1dede5;hb=87ff5a50c66f55bccfd6df91ea8a7fe080fa8c2e;hp=c37760f546fa47a089b913cff22d47e084f7d13f;hpb=aeb0a31a5b54eb00a327835a25054481bf2e8f0a;p=pdclib.old diff --git a/functions/stdlib/qsort.c b/functions/stdlib/qsort.c index c37760f..3e349fb 100644 --- a/functions/stdlib/qsort.c +++ b/functions/stdlib/qsort.c @@ -34,8 +34,11 @@ static inline void memswp( char * i, char * j, size_t size ) #define PREPARE_STACK char * stack[STACKSIZE]; char * * stackptr = stack #define PUSH( base, limit ) stackptr[0] = base; stackptr[1] = limit; stackptr += 2 #define POP( base, limit ) stackptr -= 2; base = stackptr[0]; limit = stackptr[1] -/* TODO: This is platform-dependent */ -#define STACKSIZE 40 +/* TODO: Stack usage is log2( nmemb ) (minus what T shaves off the worst case). + Worst-case nmemb is platform dependent and should probably be + configured through _PDCLIB_config.h. +*/ +#define STACKSIZE 64 void qsort( void * base, size_t nmemb, size_t size, int (*compar)( const void *, const void * ) ) {