On Friday 25 May 2007 18:53:08 [EMAIL PROTECTED] wrote:
> Modified: trunk/src/objects.c
> ===========================================================================
>=== --- trunk/src/objects.c (original)
> +++ trunk/src/objects.c Fri May 25 18:53:05 2007
> @@ -40,10 +40,9 @@
> INTVAL
> Parrot_get_vtable_index(Interp *interp, STRING *name)
> {
> - char *name_c = string_to_cstring(interp, name);
> + const char * const name_c = string_to_cstring(interp, name);
> INTVAL low = 0;
> INTVAL high = NUM_VTABLE_FUNCTIONS - 1;
> - INTVAL i;
>
> /* some of the first "slots" don't have names. skip 'em. */
> while (!Parrot_vtable_slot_names[low]) {
> @@ -52,16 +51,13 @@
> }
>
> while (low <= high) {
> - char *meth_c;
> - int cmp;
> -
> - i = (low + high) / 2;
> - meth_c = Parrot_vtable_slot_names[i];
> + const INTVAL i = (low + high) / 2;
> + const char * const meth_c = Parrot_vtable_slot_names[i];
Whoops, that just broke a couple of platforms. As I understand it, some picky
compilers only allow simultaneous declarations and assignments at the start
of a function, not within any block.
I realize that undoes the consting here, but portability wins.
-- c