0.01_03 fixes
Brandon L Black [Mon, 16 Apr 2007 11:44:26 +0000 (11:44 +0000)]
Build.PL
ChangeLog
MANIFEST.SKIP
XS.xs
lib/Class/C3/XS.pm

index 66b9a1d..9f5c037 100644 (file)
--- a/Build.PL
+++ b/Build.PL
@@ -4,6 +4,7 @@ use strict;
 
 my $build = Module::Build->new(
     module_name => 'Class::C3::XS',
+    xs_files => { 'XS.xs' => 'lib/Class/C3/XS.xs' },
     license => 'perl',
     optional => {},
     requires => {
@@ -17,6 +18,7 @@ my $build = Module::Build->new(
     recursive_test_files => 1,
     add_to_cleanup => [
         'META.yml', '*.bak', '*.gz', 'Makefile.PL',
+        'XS.c', 'XS.o', 'XS.bs',
     ],
 );
 
index 5d83af9..042bc86 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,2 +1,11 @@
 Revision history for Perl extension Class::C3::XS
 
+0.01_03 Mon Apr 16, 2007
+       Fix AvARRAY lvalue issue
+
+0.01_02 Mon Apr 16, 2007
+       Fix MakeMaker compat, and source compat, maybe
+         not it will work for more people
+
+0.01_01 Sun Apr 15, 2007
+       Initial Release
index 6c94c33..f88f26f 100644 (file)
@@ -17,5 +17,5 @@ cover_db
 ^#.*#$
 ^\.#
 ^\.c$
-lib/Class/C3/XS.c
-lib/Class/C3/XS.o
+\.[co]$
+\.bs$
diff --git a/XS.xs b/XS.xs
index 2b3f59d..7dd3695 100644 (file)
--- a/XS.xs
+++ b/XS.xs
@@ -119,14 +119,7 @@ __mro_linear_isa_c3(pTHX_ HV* stash, HV* cache, I32 level)
                     av_push(retval, winner);
                 }
                 if(!sv_cmp(seqhead, winner)) {
-
-                    /* this is basically shift(@seq) in void context */
-                    SvREFCNT_dec(*AvARRAY(seq));
-                    *AvARRAY(seq) = &PL_sv_undef;
-                    AvARRAY(seq) = AvARRAY(seq) + 1;
-                    AvMAX(seq)--;
-                    AvFILLp(seq)--;
-
+                    sv_2mortal(av_shift(seq));
                     if(AvFILLp(seq) < 0) continue;
                     svp = av_fetch(seq, 0, 0);
                     seqhead = *svp;
index 80260a8..923762b 100644 (file)
@@ -1,6 +1,6 @@
 package Class::C3::XS;
 
-our $VERSION = '0.01_02';
+our $VERSION = '0.01_03';
 
 =pod