On Tue Oct 02 10:40:14 2007, pcoch wrote: > In src/objects.c there is the todo item within Parrot_get_vtable_index(): > /* XXX slot_names still have __ in front */ > const INTVAL cmp = strcmp(name_c, meth_c + 2); > I'm guessing by this comment that they shouldn't anymore...
With the attached patch, parrot builds and tests with no errors[0]. A re-configure is necessary to regenerate a file. [0] well, no additional or unexpected errors. -- Will "Coke" Coleda
Index: src/oo.c =================================================================== --- src/oo.c (revision 31989) +++ src/oo.c (working copy) @@ -382,8 +382,7 @@ const INTVAL mid = (low + high) / 2; const char * const meth_c = Parrot_vtable_slot_names[mid]; - /* RT #45965 slot_names still have __ in front */ - const INTVAL cmp = strcmp(name_c, meth_c + 2); + const INTVAL cmp = strcmp(name_c, meth_c); if (cmp == 0) { string_cstring_free(name_c); Index: lib/Parrot/Vtable.pm =================================================================== --- lib/Parrot/Vtable.pm (revision 31989) +++ lib/Parrot/Vtable.pm (working copy) @@ -231,7 +231,7 @@ for my $entry ( @{$vtable} ) { my $uc_meth = uc $entry->[1]; $macros .= <<"EOM"; -#define PARROT_VTABLE_${uc_meth}_METHNAME \"__$entry->[1]\" +#define PARROT_VTABLE_${uc_meth}_METHNAME \"$entry->[1]\" EOM } @@ -266,7 +266,7 @@ next if ( $entry->[4] =~ /MMD_/ ); $num_vtable_funcs++; $macros .= <<"EOM"; - \"__$entry->[1]\", + \"$entry->[1]\", EOM } $macros .= <<"EOM"; @@ -310,7 +310,7 @@ next if ( $entry->[4] =~ /_STR$/ ); next if ( $entry->[4] =~ /_FLOAT$/ ); $macros .= <<"EOM"; - \"__$entry->[1]\", + \"$entry->[1]\", EOM } $macros .= <<"EOM";