r69829 - in /branches/upstream/libdata-alias-perl/current: Alias.xs Changes META.yml README lib/Data/Alias.pm
jawnsy-guest at users.alioth.debian.org
jawnsy-guest at users.alioth.debian.org
Sun Feb 27 03:11:18 UTC 2011
Author: jawnsy-guest
Date: Sun Feb 27 03:10:49 2011
New Revision: 69829
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=69829
Log:
[svn-upgrade] new version libdata-alias-perl (1.12)
Modified:
branches/upstream/libdata-alias-perl/current/Alias.xs
branches/upstream/libdata-alias-perl/current/Changes
branches/upstream/libdata-alias-perl/current/META.yml
branches/upstream/libdata-alias-perl/current/README
branches/upstream/libdata-alias-perl/current/lib/Data/Alias.pm
Modified: branches/upstream/libdata-alias-perl/current/Alias.xs
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdata-alias-perl/current/Alias.xs?rev=69829&op=diff
==============================================================================
--- branches/upstream/libdata-alias-perl/current/Alias.xs (original)
+++ branches/upstream/libdata-alias-perl/current/Alias.xs Sun Feb 27 03:10:49 2011
@@ -86,6 +86,13 @@
#endif
#ifndef SvREFCNT_inc_simple_void_NN
#define SvREFCNT_inc_simple_void_NN SvREFCNT_inc_simple_NN
+#endif
+
+#ifndef GvGP_set
+#define GvGP_set(gv, val) (GvGP(gv) = val)
+#endif
+#ifndef GvCV_set
+#define GvCV_set(gv, val) (GvCV(gv) = val)
#endif
#if (PERL_COMBI_VERSION >= 5009003)
@@ -293,6 +300,13 @@
} \
} STMT_END
+STATIC void da_restore_gvcv(pTHX_ GV *gv) {
+ CV *restcv = (CV *) SSPOPPTR;
+ CV *oldcv = GvCV(gv);
+ GvCV_set(gv, restcv);
+ SvREFCNT_dec(oldcv);
+ SvREFCNT_dec((SV *) gv);
+}
STATIC void da_alias(pTHX_ SV *a1, SV *a2, SV *value) {
PREP_ALIAS_INC(value);
@@ -329,19 +343,35 @@
Perl_croak(aTHX_ PL_no_modify);
#endif
switch (SvTYPE(value)) {
- CV *cv;
+ CV *oldcv;
case SVt_PVCV:
- svp = (SV **) &GvCV(gv);
- cv = (CV *) *svp;
- if (cv == (CV *) value)
- break;
- if (GvCVGEN(gv)) {
- GvCV(gv) = NULL;
- GvCVGEN(gv) = 0;
- SvREFCNT_dec(cv);
+ oldcv = GvCV(gv);
+ if (oldcv != (CV *) value) {
+ if (GvCVGEN(gv)) {
+ GvCV_set(gv, NULL);
+ GvCVGEN(gv) = 0;
+ SvREFCNT_dec((SV *) oldcv);
+ oldcv = NULL;
+ }
+ PL_sub_generation++;
}
- PL_sub_generation++;
- break;
+ GvMULTI_on(gv);
+ if (GvINTRO(gv)) {
+ GvINTRO_off(gv);
+ SSCHECK(4);
+ SSPUSHPTR((SV *) oldcv);
+ SSPUSHDXPTR((void (*)(pTHX_ void *))
+ da_restore_gvcv);
+ SSPUSHPTR(SvREFCNT_inc_simple_NN((SV *) gv));
+ SSPUSHINT(SAVEt_DESTRUCTOR_X);
+ GvCV_set(gv,
+ (CV *) SvREFCNT_inc_simple_NN(value));
+ } else {
+ GvCV_set(gv,
+ (CV *) SvREFCNT_inc_simple_NN(value));
+ SvREFCNT_dec((SV *) oldcv);
+ }
+ return;
case SVt_PVAV: svp = (SV **) &GvAV(gv); break;
case SVt_PVHV: svp = (SV **) &GvHV(gv); break;
case SVt_PVFM: svp = (SV **) &GvFORM(gv); break;
@@ -397,7 +427,7 @@
SV *gv = newSV(0);
sv_upgrade(gv, SVt_PVGV);
SvSCREAM_on(gv);
- GvGP(gv) = gp;
+ GvGP_set(gv, gp);
sv_free(gv);
}
}
Modified: branches/upstream/libdata-alias-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdata-alias-perl/current/Changes?rev=69829&op=diff
==============================================================================
--- branches/upstream/libdata-alias-perl/current/Changes (original)
+++ branches/upstream/libdata-alias-perl/current/Changes Sun Feb 27 03:10:49 2011
@@ -1,4 +1,8 @@
Revision history for Perl extension Data::Alias
+
+1.12 Tue Feb 22 20:47 GMT 2011
+ - Updated to work with Perl version 5.13.10, where GvGP() and
+ GvCV() are not directly-assignable lvalues
1.11 Thu Jan 13 20:23 GMT 2011
- Don't rely on details of core's pp_* functions to determine
Modified: branches/upstream/libdata-alias-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdata-alias-perl/current/META.yml?rev=69829&op=diff
==============================================================================
--- branches/upstream/libdata-alias-perl/current/META.yml (original)
+++ branches/upstream/libdata-alias-perl/current/META.yml Sun Feb 27 03:10:49 2011
@@ -16,4 +16,4 @@
- t
requires:
perl: 5.8.1
-version: 1.11
+version: 1.12
Modified: branches/upstream/libdata-alias-perl/current/README
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdata-alias-perl/current/README?rev=69829&op=diff
==============================================================================
--- branches/upstream/libdata-alias-perl/current/README (original)
+++ branches/upstream/libdata-alias-perl/current/README Sun Feb 27 03:10:49 2011
@@ -1,4 +1,4 @@
-Data::Alias 1.11 - Comprehensive set of aliasing operations
+Data::Alias 1.12 - Comprehensive set of aliasing operations
System requirements:
Modified: branches/upstream/libdata-alias-perl/current/lib/Data/Alias.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdata-alias-perl/current/lib/Data/Alias.pm?rev=69829&op=diff
==============================================================================
--- branches/upstream/libdata-alias-perl/current/lib/Data/Alias.pm (original)
+++ branches/upstream/libdata-alias-perl/current/lib/Data/Alias.pm Sun Feb 27 03:10:49 2011
@@ -5,7 +5,7 @@
use strict;
use warnings;
-our $VERSION = '1.11';
+our $VERSION = '1.12';
use base 'Exporter';
use base 'DynaLoader';
More information about the Pkg-perl-cvs-commits
mailing list