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();
#else /* Clear the stack up to about limit. Return arg. */
/*ARGSUSED*/
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. */
GC_noop1((word)dummy);
return(arg);
}
#endif
--
Regards
Peter
As always the organisation disavows knowledge of this email
_______________________________________________ Mono-list maillist - [EMAIL PROTECTED] http://lists.ximian.com/mailman/listinfo/mono-list
