On Sun, Jun 1, 2008 at 1:31 PM, Vasily Chekalkin <[EMAIL PROTECTED]> wrote:
> interp->exceptions initialized lazily. But really_destroy_exception have > signature with __attribute_notnull__. So we should either check this value > before function call or change function signature to accepts NULL. I tried this variant: --- src/exceptions.c (revisión: 28050) +++ src/exceptions.c (copia de trabajo) @@ -772,8 +772,10 @@ void destroy_exception_list(PARROT_INTERP) { - really_destroy_exception_list(interp->exceptions); - really_destroy_exception_list(interp->exc_free_list); + if (interp->exceptions) + really_destroy_exception_list(interp->exceptions); + if (interp->exc_free_list) + really_destroy_exception_list(interp->exc_free_list); } /* In my platform, Ubuntu 8.04 i386, solves both this problem and #55170 The diagnostic is the same, the root of the problem is to pass null to a parameter attributed as non null. (Optionally add several rants about premature optimization here). -- Salu2
Index: src/exceptions.c =================================================================== --- src/exceptions.c (revisión: 28050) +++ src/exceptions.c (copia de trabajo) @@ -772,8 +772,10 @@ void destroy_exception_list(PARROT_INTERP) { - really_destroy_exception_list(interp->exceptions); - really_destroy_exception_list(interp->exc_free_list); + if (interp->exceptions) + really_destroy_exception_list(interp->exceptions); + if (interp->exc_free_list) + really_destroy_exception_list(interp->exc_free_list); } /*