From: Brandon L Black Date: Wed, 27 Dec 2006 15:39:41 +0000 (+0000) Subject: newer c3.patch X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=f191d949b9db6eddbdbc95fd5931402e9b59f499;p=gitmo%2FClass-C3.git newer c3.patch --- diff --git a/c3.patch b/c3.patch index c2ab530..c1248ee 100644 --- a/c3.patch +++ b/c3.patch @@ -1,7 +1,7 @@ === Makefile.micro ================================================================== ---- Makefile.micro (/local/perl-current) (revision 12508) -+++ Makefile.micro (/local/perl-c3) (revision 12508) +--- Makefile.micro (/local/perl-current) (revision 12570) ++++ Makefile.micro (/local/perl-c3) (revision 12570) @@ -9,7 +9,7 @@ all: microperl @@ -23,8 +23,8 @@ === embed.h ================================================================== ---- embed.h (/local/perl-current) (revision 12508) -+++ embed.h (/local/perl-c3) (revision 12508) +--- embed.h (/local/perl-current) (revision 12570) ++++ embed.h (/local/perl-c3) (revision 12570) @@ -266,6 +266,10 @@ #define gv_efullname Perl_gv_efullname #define gv_efullname4 Perl_gv_efullname4 @@ -49,8 +49,8 @@ #define gv_fetchmethod_autoload(a,b,c) Perl_gv_fetchmethod_autoload(aTHX_ a,b,c) === embedvar.h ================================================================== ---- embedvar.h (/local/perl-current) (revision 12508) -+++ embedvar.h (/local/perl-c3) (revision 12508) +--- embedvar.h (/local/perl-current) (revision 12570) ++++ embedvar.h (/local/perl-c3) (revision 12570) @@ -229,6 +229,7 @@ #define PL_incgv (vTHX->Iincgv) #define PL_initav (vTHX->Iinitav) @@ -69,8 +69,8 @@ #define PL_Ilast_lop_op PL_last_lop_op === pod/perlapi.pod ================================================================== ---- pod/perlapi.pod (/local/perl-current) (revision 12508) -+++ pod/perlapi.pod (/local/perl-c3) (revision 12508) +--- pod/perlapi.pod (/local/perl-current) (revision 12570) ++++ pod/perlapi.pod (/local/perl-c3) (revision 12570) @@ -1280,7 +1280,7 @@ The argument C should be either 0 or -1. If C, as a side-effect creates a glob with the given C in the given C @@ -82,8 +82,8 @@ GV returned from C may be a method cache entry, which is not === global.sym ================================================================== ---- global.sym (/local/perl-current) (revision 12508) -+++ global.sym (/local/perl-c3) (revision 12508) +--- global.sym (/local/perl-current) (revision 12570) ++++ global.sym (/local/perl-c3) (revision 12570) @@ -133,6 +133,10 @@ Perl_gv_efullname3 Perl_gv_efullname4 @@ -97,8 +97,8 @@ Perl_gv_fetchmethod === universal.c ================================================================== ---- universal.c (/local/perl-current) (revision 12508) -+++ universal.c (/local/perl-c3) (revision 12508) +--- universal.c (/local/perl-current) (revision 12570) ++++ universal.c (/local/perl-c3) (revision 12570) @@ -36,12 +36,10 @@ int len, int level) { @@ -115,7 +115,7 @@ /* A stash/class can go by many names (ie. User == main::User), so we compare the stash itself just in case */ -@@ -56,75 +54,27 @@ +@@ -56,75 +54,23 @@ if (strEQ(name, "UNIVERSAL")) return TRUE; @@ -139,7 +139,7 @@ -#endif - return (sv == &PL_sv_yes); - } -+ stash_linear_isa = mro_linear(stash); ++ stash_linear_isa = sv_2mortal(mro_linear(stash)); + svp = AvARRAY(stash_linear_isa) + 1; + items = AvFILLp(stash_linear_isa); + while (items--) { @@ -157,11 +157,9 @@ - hvname) ); - hv_clear(hv); - sv_setiv(subgen, PL_sub_generation); -+ if(name_stash == basestash -+ || strEQ(name, SvPVX(basename_sv))) { -+ SvREFCNT_dec(stash_linear_isa); +- } ++ if(name_stash == basestash || strEQ(name, SvPVX(basename_sv))) + return TRUE; - } } - gvp = (GV**)hv_fetchs(stash, "ISA", FALSE); @@ -204,14 +202,13 @@ - (void)hv_store(hv,name,len,&PL_sv_no,0); - } - } -+ SvREFCNT_dec(stash_linear_isa); return FALSE; } === gv.c ================================================================== ---- gv.c (/local/perl-current) (revision 12508) -+++ gv.c (/local/perl-c3) (revision 12508) +--- gv.c (/local/perl-current) (revision 12570) ++++ gv.c (/local/perl-c3) (revision 12570) @@ -298,7 +298,7 @@ The argument C should be either 0 or -1. If C, as a side-effect creates a glob with the given C in the given C @@ -459,8 +456,8 @@ return 0; === perlapi.h ================================================================== ---- perlapi.h (/local/perl-current) (revision 12508) -+++ perlapi.h (/local/perl-c3) (revision 12508) +--- perlapi.h (/local/perl-current) (revision 12570) ++++ perlapi.h (/local/perl-c3) (revision 12570) @@ -336,6 +336,8 @@ #define PL_initav (*Perl_Iinitav_ptr(aTHX)) #undef PL_inplace @@ -472,8 +469,8 @@ #undef PL_last_lop === win32/Makefile ================================================================== ---- win32/Makefile (/local/perl-current) (revision 12508) -+++ win32/Makefile (/local/perl-c3) (revision 12508) +--- win32/Makefile (/local/perl-current) (revision 12570) ++++ win32/Makefile (/local/perl-c3) (revision 12570) @@ -644,6 +644,7 @@ ..\dump.c \ ..\globals.c \ @@ -484,8 +481,8 @@ ..\mathoms.c \ === win32/makefile.mk ================================================================== ---- win32/makefile.mk (/local/perl-current) (revision 12508) -+++ win32/makefile.mk (/local/perl-c3) (revision 12508) +--- win32/makefile.mk (/local/perl-current) (revision 12570) ++++ win32/makefile.mk (/local/perl-c3) (revision 12570) @@ -813,6 +813,7 @@ ..\dump.c \ ..\globals.c \ @@ -496,8 +493,8 @@ ..\mathoms.c \ === win32/Makefile.ce ================================================================== ---- win32/Makefile.ce (/local/perl-current) (revision 12508) -+++ win32/Makefile.ce (/local/perl-c3) (revision 12508) +--- win32/Makefile.ce (/local/perl-current) (revision 12570) ++++ win32/Makefile.ce (/local/perl-c3) (revision 12570) @@ -571,6 +571,7 @@ ..\dump.c \ ..\globals.c \ @@ -516,8 +513,8 @@ $(DLLDIR)\mathoms.obj \ === NetWare/Makefile ================================================================== ---- NetWare/Makefile (/local/perl-current) (revision 12508) -+++ NetWare/Makefile (/local/perl-c3) (revision 12508) +--- NetWare/Makefile (/local/perl-current) (revision 12570) ++++ NetWare/Makefile (/local/perl-c3) (revision 12570) @@ -701,6 +701,7 @@ ..\dump.c \ ..\globals.c \ @@ -528,8 +525,8 @@ ..\mathoms.c \ === vms/descrip_mms.template ================================================================== ---- vms/descrip_mms.template (/local/perl-current) (revision 12508) -+++ vms/descrip_mms.template (/local/perl-c3) (revision 12508) +--- vms/descrip_mms.template (/local/perl-current) (revision 12570) ++++ vms/descrip_mms.template (/local/perl-c3) (revision 12570) @@ -279,13 +279,13 @@ #### End of system configuration section. #### @@ -557,8 +554,8 @@ locale$(O) : locale.c $(h) === Makefile.SH ================================================================== ---- Makefile.SH (/local/perl-current) (revision 12508) -+++ Makefile.SH (/local/perl-c3) (revision 12508) +--- Makefile.SH (/local/perl-current) (revision 12570) ++++ Makefile.SH (/local/perl-c3) (revision 12570) @@ -364,7 +364,7 @@ h5 = utf8.h warnings.h h = $(h1) $(h2) $(h3) $(h4) $(h5) @@ -579,8 +576,8 @@ === proto.h ================================================================== ---- proto.h (/local/perl-current) (revision 12508) -+++ proto.h (/local/perl-c3) (revision 12508) +--- proto.h (/local/perl-current) (revision 12570) ++++ proto.h (/local/perl-c3) (revision 12570) @@ -624,6 +624,18 @@ PERL_CALLCONV GV* Perl_gv_fetchfile(pTHX_ const char* name) __attribute__nonnull__(pTHX_1); @@ -602,8 +599,8 @@ === ext/B/t/concise-xs.t ================================================================== ---- ext/B/t/concise-xs.t (/local/perl-current) (revision 12508) -+++ ext/B/t/concise-xs.t (/local/perl-c3) (revision 12508) +--- ext/B/t/concise-xs.t (/local/perl-current) (revision 12570) ++++ ext/B/t/concise-xs.t (/local/perl-c3) (revision 12570) @@ -117,7 +117,7 @@ use Carp; use Test::More tests => ( # per-pkg tests (function ct + require_ok) @@ -624,8 +621,8 @@ === ext/B/B.xs ================================================================== ---- ext/B/B.xs (/local/perl-current) (revision 12508) -+++ ext/B/B.xs (/local/perl-c3) (revision 12508) +--- ext/B/B.xs (/local/perl-current) (revision 12570) ++++ ext/B/B.xs (/local/perl-c3) (revision 12570) @@ -604,6 +604,7 @@ #define B_main_start() PL_main_start #define B_amagic_generation() PL_amagic_generation @@ -646,8 +643,8 @@ === ext/B/B.pm ================================================================== ---- ext/B/B.pm (/local/perl-current) (revision 12508) -+++ ext/B/B.pm (/local/perl-c3) (revision 12508) +--- ext/B/B.pm (/local/perl-current) (revision 12570) ++++ ext/B/B.pm (/local/perl-c3) (revision 12570) @@ -23,6 +23,7 @@ parents comppadlist sv_undef compile_stats timing_info begin_av init_av unitcheck_av check_av end_av regex_padav @@ -658,8 +655,8 @@ sub OPf_KIDS (); === ext/mro/t/basic_01_dfs.t ================================================================== ---- ext/mro/t/basic_01_dfs.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/basic_01_dfs.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/basic_01_dfs.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/basic_01_dfs.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,54 @@ +#!./perl + @@ -717,8 +714,8 @@ +is(UNIVERSAL::can("Diamond_D", 'hello')->(), 'Diamond_A::hello', '... can(method) resolved itself as expected'); === ext/mro/t/vulcan_c3.t ================================================================== ---- ext/mro/t/vulcan_c3.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/vulcan_c3.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/vulcan_c3.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/vulcan_c3.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,73 @@ +#!./perl + @@ -795,8 +792,8 @@ + '... got the right MRO for the Vulcan Dylan Example'); === ext/mro/t/basic_02_dfs.t ================================================================== ---- ext/mro/t/basic_02_dfs.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/basic_02_dfs.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/basic_02_dfs.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/basic_02_dfs.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,122 @@ +#!./perl + @@ -922,8 +919,8 @@ +is(Test::A->can('C_or_E')->(), 'Test::E', '... can got the expected method output'); === ext/mro/t/basic_03_dfs.t ================================================================== ---- ext/mro/t/basic_03_dfs.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/basic_03_dfs.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/basic_03_dfs.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/basic_03_dfs.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,108 @@ +#!./perl + @@ -1035,8 +1032,8 @@ +is(Test::A->C_or_D, 'Test::D', '... got the right method dispatch'); === ext/mro/t/basic_04_dfs.t ================================================================== ---- ext/mro/t/basic_04_dfs.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/basic_04_dfs.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/basic_04_dfs.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/basic_04_dfs.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,41 @@ +#!./perl + @@ -1081,8 +1078,8 @@ + === ext/mro/t/basic_05_dfs.t ================================================================== ---- ext/mro/t/basic_05_dfs.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/basic_05_dfs.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/basic_05_dfs.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/basic_05_dfs.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,62 @@ +#!./perl + @@ -1148,8 +1145,8 @@ + '... got the right next::method dispatch path'); === ext/mro/t/vulcan_dfs.t ================================================================== ---- ext/mro/t/vulcan_dfs.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/vulcan_dfs.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/vulcan_dfs.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/vulcan_dfs.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,73 @@ +#!./perl + @@ -1226,8 +1223,8 @@ + '... got the right MRO for the Vulcan Dylan Example'); === ext/mro/t/dbic_c3.t ================================================================== ---- ext/mro/t/dbic_c3.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/dbic_c3.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/dbic_c3.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/dbic_c3.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,126 @@ +#!./perl + @@ -1357,8 +1354,8 @@ + '... got the right C3 merge order for xx::DBIx::Class::Core'); === ext/mro/t/complex_c3.t ================================================================== ---- ext/mro/t/complex_c3.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/complex_c3.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/complex_c3.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/complex_c3.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,144 @@ +#!./perl + @@ -1506,8 +1503,8 @@ + '... got the right C3 merge order for Test::K'); === ext/mro/t/dbic_dfs.t ================================================================== ---- ext/mro/t/dbic_dfs.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/dbic_dfs.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/dbic_dfs.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/dbic_dfs.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,150 @@ +#!./perl + @@ -1661,8 +1658,8 @@ + '... got the right DFS merge order for xx::DBIx::Class::Core'); === ext/mro/t/recursion_c3.t ================================================================== ---- ext/mro/t/recursion_c3.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/recursion_c3.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/recursion_c3.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/recursion_c3.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,90 @@ +#!./perl + @@ -1756,8 +1753,8 @@ +} === ext/mro/t/overload_c3.t ================================================================== ---- ext/mro/t/overload_c3.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/overload_c3.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/overload_c3.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/overload_c3.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,55 @@ +#!./perl + @@ -1816,8 +1813,8 @@ + === ext/mro/t/complex_dfs.t ================================================================== ---- ext/mro/t/complex_dfs.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/complex_dfs.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/complex_dfs.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/complex_dfs.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,144 @@ +#!./perl + @@ -1965,8 +1962,8 @@ + '... got the right DFS merge order for Test::K'); === ext/mro/t/inconsistent_c3.t ================================================================== ---- ext/mro/t/inconsistent_c3.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/inconsistent_c3.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/inconsistent_c3.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/inconsistent_c3.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,48 @@ +#!./perl + @@ -2018,8 +2015,8 @@ +like($@, qr/^Inconsistent hierarchy/, '... got the right error with an inconsistent hierarchy'); === ext/mro/t/recursion_dfs.t ================================================================== ---- ext/mro/t/recursion_dfs.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/recursion_dfs.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/recursion_dfs.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/recursion_dfs.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,90 @@ +#!./perl + @@ -2113,8 +2110,8 @@ +} === ext/mro/t/basic_01_c3.t ================================================================== ---- ext/mro/t/basic_01_c3.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/basic_01_c3.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/basic_01_c3.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/basic_01_c3.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,54 @@ +#!./perl + @@ -2172,8 +2169,8 @@ +is(UNIVERSAL::can("Diamond_D", 'hello')->(), 'Diamond_C::hello', '... can(method) resolved itself as expected'); === ext/mro/t/basic_02_c3.t ================================================================== ---- ext/mro/t/basic_02_c3.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/basic_02_c3.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/basic_02_c3.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/basic_02_c3.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,122 @@ +#!./perl + @@ -2299,8 +2296,8 @@ +is(Test::A->can('C_or_E')->(), 'Test::C', '... can got the expected method output'); === ext/mro/t/overload_dfs.t ================================================================== ---- ext/mro/t/overload_dfs.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/overload_dfs.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/overload_dfs.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/overload_dfs.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,55 @@ +#!./perl + @@ -2359,8 +2356,8 @@ + === ext/mro/t/basic_03_c3.t ================================================================== ---- ext/mro/t/basic_03_c3.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/basic_03_c3.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/basic_03_c3.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/basic_03_c3.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,108 @@ +#!./perl + @@ -2472,8 +2469,8 @@ +is(Test::A->C_or_D, 'Test::C', '... got the right method dispatch'); === ext/mro/t/basic_04_c3.t ================================================================== ---- ext/mro/t/basic_04_c3.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/basic_04_c3.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/basic_04_c3.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/basic_04_c3.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,41 @@ +#!./perl + @@ -2518,8 +2515,8 @@ + === ext/mro/t/basic_05_c3.t ================================================================== ---- ext/mro/t/basic_05_c3.t (/local/perl-current) (revision 12508) -+++ ext/mro/t/basic_05_c3.t (/local/perl-c3) (revision 12508) +--- ext/mro/t/basic_05_c3.t (/local/perl-current) (revision 12570) ++++ ext/mro/t/basic_05_c3.t (/local/perl-c3) (revision 12570) @@ -0,0 +1,62 @@ +#!./perl + @@ -2585,8 +2582,8 @@ + '... got the right next::method dispatch path'); === ext/mro/mro.xs ================================================================== ---- ext/mro/mro.xs (/local/perl-current) (revision 12508) -+++ ext/mro/mro.xs (/local/perl-c3) (revision 12508) +--- ext/mro/mro.xs (/local/perl-current) (revision 12570) ++++ ext/mro/mro.xs (/local/perl-c3) (revision 12570) @@ -0,0 +1,98 @@ +/* mro.xs + * @@ -2688,8 +2685,8 @@ + RETVAL === ext/mro/Makefile.PL ================================================================== ---- ext/mro/Makefile.PL (/local/perl-current) (revision 12508) -+++ ext/mro/Makefile.PL (/local/perl-c3) (revision 12508) +--- ext/mro/Makefile.PL (/local/perl-current) (revision 12570) ++++ ext/mro/Makefile.PL (/local/perl-c3) (revision 12570) @@ -0,0 +1,35 @@ +use ExtUtils::MakeMaker; +use Config; @@ -2728,8 +2725,8 @@ +} === ext/mro/mro.pm ================================================================== ---- ext/mro/mro.pm (/local/perl-current) (revision 12508) -+++ ext/mro/mro.pm (/local/perl-c3) (revision 12508) +--- ext/mro/mro.pm (/local/perl-current) (revision 12570) ++++ ext/mro/mro.pm (/local/perl-c3) (revision 12570) @@ -0,0 +1,91 @@ +# mro.pm +# @@ -2824,8 +2821,8 @@ +=cut === MANIFEST ================================================================== ---- MANIFEST (/local/perl-current) (revision 12508) -+++ MANIFEST (/local/perl-c3) (revision 12508) +--- MANIFEST (/local/perl-current) (revision 12570) ++++ MANIFEST (/local/perl-c3) (revision 12570) @@ -893,6 +893,30 @@ ext/MIME/Base64/t/quoted-print.t See whether MIME::QuotedPrint works ext/MIME/Base64/t/unicode.t See whether MIME::Base64 works @@ -2857,7 +2854,7 @@ ext/NDBM_File/hints/cygwin.pl Hint for NDBM_File for named architecture ext/NDBM_File/hints/dec_osf.pl Hint for NDBM_File for named architecture ext/NDBM_File/hints/dynixptx.pl Hint for NDBM_File for named architecture -@@ -2792,6 +2816,7 @@ +@@ -2796,6 +2820,7 @@ mpeix/mpeix_setjmp.c MPE/iX port mpeix/nm MPE/iX port mpeix/relink MPE/iX port @@ -2867,8 +2864,8 @@ NetWare/bat/SetCodeWar.bat NetWare port === mro.c ================================================================== ---- mro.c (/local/perl-current) (revision 12508) -+++ mro.c (/local/perl-c3) (revision 12508) +--- mro.c (/local/perl-current) (revision 12570) ++++ mro.c (/local/perl-c3) (revision 12570) @@ -0,0 +1,297 @@ +/* mro.c + * @@ -3169,9 +3166,31 @@ + */ === hv.c ================================================================== ---- hv.c (/local/perl-current) (revision 12508) -+++ hv.c (/local/perl-c3) (revision 12508) -@@ -1895,6 +1895,7 @@ +--- hv.c (/local/perl-current) (revision 12570) ++++ hv.c (/local/perl-c3) (revision 12570) +@@ -1743,6 +1743,7 @@ + + if (SvOOK(hv)) { + HE *entry; ++ struct mro_meta *meta; + struct xpvhv_aux *iter = HvAUX(hv); + /* If there are weak references to this HV, we need to avoid + freeing them up here. In particular we need to keep the AV +@@ -1774,6 +1775,13 @@ + iter->xhv_riter = -1; /* HvRITER(hv) = -1 */ + iter->xhv_eiter = NULL; /* HvEITER(hv) = NULL */ + ++ if(meta = iter->xhv_mro_meta) { ++ if(meta->mro_linear_dfs) SvREFCNT_dec(meta->mro_linear_dfs); ++ if(meta->mro_linear_c3) SvREFCNT_dec(meta->mro_linear_c3); ++ Safefree(meta); ++ iter->xhv_mro_meta = NULL; ++ } ++ + /* There are now no allocated pointers in the aux structure. */ + + SvFLAGS(hv) &= ~SVf_OOK; /* Goodbye, aux structure. */ +@@ -1895,6 +1903,7 @@ iter->xhv_eiter = NULL; /* HvEITER(hv) = NULL */ iter->xhv_name = 0; iter->xhv_backreferences = 0; @@ -3181,8 +3200,8 @@ === hv.h ================================================================== ---- hv.h (/local/perl-current) (revision 12508) -+++ hv.h (/local/perl-c3) (revision 12508) +--- hv.h (/local/perl-current) (revision 12570) ++++ hv.h (/local/perl-c3) (revision 12570) @@ -38,12 +38,32 @@ /* Subject to change. @@ -3226,8 +3245,8 @@ /* This macro may go away without notice. */ === mg.c ================================================================== ---- mg.c (/local/perl-current) (revision 12508) -+++ mg.c (/local/perl-c3) (revision 12508) +--- mg.c (/local/perl-current) (revision 12570) ++++ mg.c (/local/perl-c3) (revision 12570) @@ -1517,6 +1517,7 @@ PERL_UNUSED_ARG(sv); PERL_UNUSED_ARG(mg); @@ -3238,8 +3257,8 @@ === intrpvar.h ================================================================== ---- intrpvar.h (/local/perl-current) (revision 12508) -+++ intrpvar.h (/local/perl-c3) (revision 12508) +--- intrpvar.h (/local/perl-current) (revision 12570) ++++ intrpvar.h (/local/perl-c3) (revision 12570) @@ -558,6 +558,7 @@ PERLVARI(Iutf8cache, I8, 1) /* Is the utf8 caching code enabled? */ #endif @@ -3250,8 +3269,8 @@ * (Don't forget to add your variable also to perl_clone()!) === sv.c ================================================================== ---- sv.c (/local/perl-current) (revision 12508) -+++ sv.c (/local/perl-c3) (revision 12508) +--- sv.c (/local/perl-current) (revision 12570) ++++ sv.c (/local/perl-c3) (revision 12570) @@ -10985,6 +10985,7 @@ PL_initav = av_dup_inc(proto_perl->Iinitav, param); @@ -3262,8 +3281,8 @@ PL_forkprocess = proto_perl->Iforkprocess; === embed.fnc ================================================================== ---- embed.fnc (/local/perl-current) (revision 12508) -+++ embed.fnc (/local/perl-c3) (revision 12508) +--- embed.fnc (/local/perl-current) (revision 12570) ++++ embed.fnc (/local/perl-c3) (revision 12570) @@ -278,6 +278,10 @@ Apmb |void |gv_efullname3 |NN SV* sv|NN const GV* gv|NULLOK const char* prefix Ap |void |gv_efullname4 |NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool keepmain @@ -3279,5 +3298,5 @@ Property changes on: ___________________________________________________________________ Name: svk:merge - +2679d79f-d018-0410-a353-0f906ad2929c:/local/perl-current:12502 + +2679d79f-d018-0410-a353-0f906ad2929c:/local/perl-current:12569