On Fri, Aug 19, 2005 at 11:26:46AM +0200, Tels wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> 
> Moin,
> 
> Anyway, this work sounds good. Just one small detail:
> 
> +
> +    for (i=0; i<17; i++) {
> +     S_free_arena(aTHX_ (void**) PL_body_arenaroots[i]);
> +     PL_body_arenaroots[i] = 0;
> +     PL_body_roots[i] = 0;
> +    }
> 
> 
> The 17 should be defined somewhere. It might change someday :)

I wasn't sure why the 17 was 17 and not 16.

Anyway, nice. This seems a good way to go.

It wasn't directly what I had been thinking about, and it had never occurred
to me to put the arena heads into an array. That's going to reduce the size
of the switch statements nicely.

What I had been wondering was whether the arena roots (or at least all bar
sv_arenaroot) can all be replaced by a single pointer, given that all that
the PL_*_arenaroot pointers point to are structurally identical linked lists
of things to free.

But if that change works, it can be made after the change you're working on
here goes in.

Nicholas Clark

Reply via email to