@@ -3,7 +3,7 @@ use strict;
33use vars qw( $VERSION @ISA %type_to_struct %type_from_struct %type_to_sv
44 %type_to_C_value %type_is_a_problem %type_num_args
55 %type_temporary) ;
6- $VERSION = ' 0.23_07 ' ;
6+ $VERSION = ' 0.23_08 ' ;
77@ISA = ' ExtUtils::Constant::XS' ;
88
99=head1 NAME
@@ -443,8 +443,13 @@ static MGVTBL not_defined_vtbl = {
443443 0, /* len */
444444 0, /* clear */
445445 0, /* free */
446+ #if PERL_VERSION > 6
446447 0, /* copy */
447448 0, /* dup */
449+ #if (PERL_VERSION > 8) || (PERL_VERSION == 8 && PERL_SUBVERSION == 9)
450+ 0, /* local */
451+ #endif
452+ #endif
448453};
449454
450455EXPLODE
@@ -456,7 +461,7 @@ EXPLODE
456461 $key =~ s / ::$// ;
457462 my $key_len = length $key ;
458463
459- print $c_fh <<"MISSING" ;
464+ print $c_fh <<"MISSING" unless $explosives ;
460465
461466#ifndef SYMBIAN
462467
@@ -589,11 +594,17 @@ EOBOOT
589594 $add_symbol_subname , $push );
590595 }
591596
592- print $xs_fh <<" EOBOOT" ;
597+ print $xs_fh <<' EOBOOT' ;
593598 if (C_ARRAY_LENGTH(values_for_notfound) > 1) {
599+ EOBOOT
600+
601+ print $xs_fh <<"EOBOOT" unless $explosives ;
594602#ifndef SYMBIAN
595603 HV *const ${c_subname} _missing = get_missing_hash(aTHX);
596604#endif
605+ EOBOOT
606+
607+ print $xs_fh <<'EOBOOT' ;
597608 const struct notfound_s *value_for_notfound = values_for_notfound;
598609 do {
599610EOBOOT
@@ -603,7 +614,7 @@ EOBOOT
603614
604615 sv_magicext(tripwire, 0, PERL_MAGIC_ext, ¬_defined_vtbl, 0, 0);
605616 SvPV_set(tripwire, (char *)value_for_notfound->name);
606- if(value_for_notfound->namelen >= 0) {
617+ if (value_for_notfound->namelen >= 0) {
607618 SvCUR_set(tripwire, value_for_notfound->namelen);
608619 } else {
609620 SvCUR_set(tripwire, -value_for_notfound->namelen);
0 commit comments