On Tuesday 03 June 2008 10:50:27 NotFound via RT wrote:

> 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).

Agreed, and applied as r28051.  Thanks, everyone!

-- c

Reply via email to