Joshua Gatcomb <[EMAIL PROTECTED]> wrote:

> --- Leopold Toetsch <[EMAIL PROTECTED]> wrote:
>> $ make realclean
>> $ perl Configure.pl --intval=long --opcode=long

> This was the ticket!!!!  Thanks.

Great.

> For my own
> edification, can you explain to me what in the code I
> isolated that changed on the 15th accounts for this?

It was the assumption that a PMC is not smaller then a Dead_PObj
structure, which obviously is wrong. Other code paths that deal with
Dead_PObj do check the size. But at the place, where you got the
segfault, there wasn't such a check because of that assumption.

The Dead_PObj structure had another problem, which is fixed now: I
thought that pobj->buflen is an UINTVAL. Actually it's a size_t, which
might not be the same length.

BTW: STRINGs have an UINTVAL strlen and a size_t buflen, which might not
be very useful.

> ivtype='long long', ivsize=8

[ get rid of perl5 types in config ]

> I think this is something I could do if I knew what it
> *should be* using/getting the values from.

Good question. But normally we should have:

  sizeof(void *) == sizeof(opcode) == sizeof(INTVAL)

The sizeof(void *) is the "natural" size of the system. When we allow
sizeof(INTVAL) == 8 on 32bit system, we need a big code cleanup.
U?INTVALs are used all over the place just as plain ints.

This was discussed earlier several times, but isn't really solved IMHO.

> Thanks again

Welcome.

> Joshua Gatcomb

leo

Reply via email to