want_vtbl_substr,
want_vtbl_vec,
want_vtbl_pos,
- want_vtbl_bm,
- want_vtbl_fm,
want_vtbl_uvar,
want_vtbl_defelem,
want_vtbl_regexp,
{ Perl_magic_getsubstr, Perl_magic_setsubstr, 0, 0, 0, 0, 0, 0 },
{ Perl_magic_getvec, Perl_magic_setvec, 0, 0, 0, 0, 0, 0 },
{ Perl_magic_getpos, Perl_magic_setpos, 0, 0, 0, 0, 0, 0 },
- { 0, Perl_magic_setregexp, 0, 0, 0, 0, 0, 0 },
- { 0, Perl_magic_setregexp, 0, 0, 0, 0, 0, 0 },
{ Perl_magic_getuvar, Perl_magic_setuvar, 0, 0, 0, 0, 0, 0 },
{ Perl_magic_getdefelem, Perl_magic_setdefelem, 0, 0, 0, 0, 0, 0 },
{ 0, Perl_magic_setregexp, 0, 0, 0, 0, 0, 0 },
EXT_MGVTBL PL_magic_vtables[magic_vtable_max];
#endif
+#define want_vtbl_bm want_vtbl_regexp
+#define want_vtbl_fm want_vtbl_regexp
+
#define PL_vtbl_amagic PL_magic_vtables[want_vtbl_amagic]
#define PL_vtbl_amagicelem PL_magic_vtables[want_vtbl_amagicelem]
#define PL_vtbl_arylen PL_magic_vtables[want_vtbl_arylen]
'substr' => {get => 'getsubstr', set => 'setsubstr'},
'vec' => {get => 'getvec', set => 'setvec'},
'pos' => {get => 'getpos', set => 'setpos'},
- 'bm' => {set => 'setregexp'},
- 'fm' => {set => 'setregexp'},
'uvar' => {get => 'getuvar', set => 'setuvar'},
'defelem' => {get => 'getdefelem', set => 'setdefelem'},
- 'regexp' => {set => 'setregexp'},
+ 'regexp' => {set => 'setregexp', alias => [qw(bm fm)]},
'regdata' => {len => 'regdata_cnt'},
'regdatum' => {get => 'regdatum_get', set => 'regdatum_set'},
'amagic' => {set => 'setamagic', free => 'setamagic'},
EOH
my @vtable_names;
+my @aliases;
while (my ($name, $data) = splice @sig, 0, 2) {
push @vtable_names, $name;
{ 0, 0, 0, 0, 0, 0, 0, 0 }$comma
#endif
EOH
+ foreach(@{$data->{alias}}) {
+ push @aliases, "#define want_vtbl_$_ want_vtbl_$name\n";
+ push @vtable_names, $_;
+ }
}
print $h <<'EOH';
EOH
+print $h @aliases, "\n";;
print $h "#define PL_vtbl_$_ PL_magic_vtables[want_vtbl_$_]\n"
foreach sort @vtable_names;