[Mono-list] mono-0.28/libgc/misc.c:GC_clear_stack_inner comments, please

Peter Kostouros kpeter@melbpc.org.au
Sun, 26 Oct 2003 09:28:45 +1100


I wonder if I can get some input from the following snippet of code 
(mono-0.28/libgc/misc.c:GC_clear_stack_inner).  What is the essence of 
this function? Mono applications abnormally terminate upon completion: 
perhaps something going wrong with recursion?

Note target machine is FreeBSD (CURRENT), and ASM_CLEAR_CODE is false.

#if defined(ASM_CLEAR_CODE)
  extern ptr_t GC_clear_stack_inner();
/* Clear the stack up to about limit.  Return arg. */
ptr_t GC_clear_stack_inner(arg, limit)
ptr_t arg;
word limit;
    word dummy[CLEAR_SIZE];
    BZERO(dummy, CLEAR_SIZE*sizeof(word));
    if ((word)(dummy) COOLER_THAN limit) {
        (void) GC_clear_stack_inner(arg, limit);
    /* Make sure the recursive call is not a tail call, and the bzero    */
    /* call is not recognized as dead code.                */




As always the organisation disavows knowledge of this email