r73659 - in /trunk/libdata-alias-perl: .cvsignore Alias.xs Changes MANIFEST META.yml README debian/changelog lib/Data/Alias.pm t/04_swap.t
gregoa at users.alioth.debian.org
gregoa at users.alioth.debian.org
Wed Apr 27 18:53:15 UTC 2011
Author: gregoa
Date: Wed Apr 27 18:52:58 2011
New Revision: 73659
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=73659
Log:
* New upstream release 1.13.
Added:
trunk/libdata-alias-perl/.cvsignore
- copied unchanged from r73658, branches/upstream/libdata-alias-perl/current/.cvsignore
trunk/libdata-alias-perl/t/04_swap.t
- copied unchanged from r73658, branches/upstream/libdata-alias-perl/current/t/04_swap.t
Modified:
trunk/libdata-alias-perl/Alias.xs
trunk/libdata-alias-perl/Changes
trunk/libdata-alias-perl/MANIFEST
trunk/libdata-alias-perl/META.yml
trunk/libdata-alias-perl/README
trunk/libdata-alias-perl/debian/changelog
trunk/libdata-alias-perl/lib/Data/Alias.pm
Modified: trunk/libdata-alias-perl/Alias.xs
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-alias-perl/Alias.xs?rev=73659&op=diff
==============================================================================
--- trunk/libdata-alias-perl/Alias.xs (original)
+++ trunk/libdata-alias-perl/Alias.xs Wed Apr 27 18:52:58 2011
@@ -25,6 +25,12 @@
PERL_SUBVERSION)
#endif
+#if defined(USE_DTRACE) && defined(PERL_CORE)
+#undef ENTRY_PROBE
+#undef RETURN_PROBE
+#define ENTRY_PROBE(func, file, line, stash)
+#define RETURN_PROBE(func, file, line, stash)
+#endif
#if defined(PERL_CORE) && defined(MULTIPLICITY) && \
(PERL_COMBI_VERSION < 5013006)
@@ -400,7 +406,8 @@
return;
case SVt_PVHV:
if (value == &PL_sv_undef) {
- hv_delete_ent((HV *) a1, a2, G_DISCARD, 0);
+ (void) hv_delete_ent((HV *) a1, a2,
+ G_DISCARD, 0);
} else {
if (!hv_store_ent((HV *) a1, a2, value, 0))
SvREFCNT_dec(value);
@@ -454,13 +461,13 @@
return rv;
}
-OP *DataAlias_pp_srefgen(pTHX) {
+STATIC OP *DataAlias_pp_srefgen(pTHX) {
dSP;
SETs(da_refgen(aTHX_ TOPs));
RETURN;
}
-OP *DataAlias_pp_refgen(pTHX) {
+STATIC OP *DataAlias_pp_refgen(pTHX) {
dSP; dMARK;
if (GIMME_V != G_LIST) {
++MARK;
@@ -474,7 +481,7 @@
RETURN;
}
-OP *DataAlias_pp_anonlist(pTHX) {
+STATIC OP *DataAlias_pp_anonlist(pTHX) {
dSP; dMARK;
I32 i = SP - MARK;
AV *av = newAV();
@@ -494,7 +501,7 @@
RETURN;
}
-OP *DataAlias_pp_anonhash(pTHX) {
+STATIC OP *DataAlias_pp_anonhash(pTHX) {
dSP; dMARK; dORIGMARK;
HV *hv = (HV *) newHV();
SV *sv;
@@ -507,9 +514,9 @@
Perl_warner(aTHX_ packWARN(WARN_MISC),
"Odd number of elements in anonymous hash");
if (val == &PL_sv_undef)
- hv_delete_ent(hv, key, G_DISCARD, 0);
+ (void) hv_delete_ent(hv, key, G_DISCARD, 0);
else
- hv_store_ent(hv, key, val, 0);
+ (void) hv_store_ent(hv, key, val, 0);
}
SP = ORIGMARK;
if (PL_op->op_flags & OPf_SPECIAL) {
@@ -522,7 +529,7 @@
RETURN;
}
-OP *DataAlias_pp_aelemfast(pTHX) {
+STATIC OP *DataAlias_pp_aelemfast(pTHX) {
dSP;
AV *av = (PL_op->op_flags & OPf_SPECIAL) ?
(AV *) PAD_SV(PL_op->op_targ) : GvAVn(cGVOP_gv);
@@ -543,7 +550,7 @@
return FALSE;
}
-OP *DataAlias_pp_aelem(pTHX) {
+STATIC OP *DataAlias_pp_aelem(pTHX) {
dSP;
SV *elem = POPs, **svp;
AV *av = (AV *) POPs;
@@ -584,7 +591,7 @@
}
#endif
-OP *DataAlias_pp_helem(pTHX) {
+STATIC OP *DataAlias_pp_helem(pTHX) {
dSP;
SV *key = POPs;
HV *hv = (HV *) POPs;
@@ -613,7 +620,7 @@
RETURN;
}
-OP *DataAlias_pp_aslice(pTHX) {
+STATIC OP *DataAlias_pp_aslice(pTHX) {
dSP; dMARK;
AV *av = (AV *) POPs;
IV max, count;
@@ -646,7 +653,7 @@
RETURN;
}
-OP *DataAlias_pp_hslice(pTHX) {
+STATIC OP *DataAlias_pp_hslice(pTHX) {
dSP; dMARK;
HV *hv = (HV *) POPs;
SV *key;
@@ -685,7 +692,7 @@
RETURN;
}
-OP *DataAlias_pp_padsv(pTHX) {
+STATIC OP *DataAlias_pp_padsv(pTHX) {
dSP;
IV index = PL_op->op_targ;
if (PL_op->op_private & OPpLVAL_INTRO) {
@@ -696,7 +703,7 @@
RETURN;
}
-OP *DataAlias_pp_padav(pTHX) {
+STATIC OP *DataAlias_pp_padav(pTHX) {
dSP; dTARGET;
if (PL_op->op_private & OPpLVAL_INTRO)
SAVECLEARSV(PAD_SVl(PL_op->op_targ));
@@ -704,7 +711,7 @@
RETURN;
}
-OP *DataAlias_pp_padhv(pTHX) {
+STATIC OP *DataAlias_pp_padhv(pTHX) {
dSP; dTARGET;
if (PL_op->op_private & OPpLVAL_INTRO)
SAVECLEARSV(PAD_SVl(PL_op->op_targ));
@@ -712,7 +719,7 @@
RETURN;
}
-OP *DataAlias_pp_gvsv(pTHX) {
+STATIC OP *DataAlias_pp_gvsv(pTHX) {
dSP;
GV *gv = cGVOP_gv;
if (PL_op->op_private & OPpLVAL_INTRO) {
@@ -723,7 +730,7 @@
RETURN;
}
-OP *DataAlias_pp_gvsv_r(pTHX) {
+STATIC OP *DataAlias_pp_gvsv_r(pTHX) {
dSP;
GV *gv = cGVOP_gv;
if (PL_op->op_private & OPpLVAL_INTRO) {
@@ -743,7 +750,7 @@
return egv;
}
-OP *DataAlias_pp_rv2sv(pTHX) {
+STATIC OP *DataAlias_pp_rv2sv(pTHX) {
dSP; dPOPss;
if (!SvROK(sv) && SvTYPE(sv) != SVt_PVGV) do {
const char *tname;
@@ -785,7 +792,7 @@
RETURN;
}
-OP *DataAlias_pp_rv2sv_r(pTHX) {
+STATIC OP *DataAlias_pp_rv2sv_r(pTHX) {
U8 savedflags;
OP *op = PL_op, *ret;
@@ -803,7 +810,7 @@
return ret;
}
-OP *DataAlias_pp_rv2gv(pTHX) {
+STATIC OP *DataAlias_pp_rv2gv(pTHX) {
dSP; dPOPss;
if (SvROK(sv)) {
wasref: sv = SvRV(sv);
@@ -829,7 +836,7 @@
RETURN;
}
-OP *DataAlias_pp_rv2av(pTHX) {
+STATIC OP *DataAlias_pp_rv2av(pTHX) {
OP *ret = PL_ppaddr[OP_RV2AV](aTHX);
dSP;
SV *av = POPs;
@@ -838,7 +845,7 @@
return ret;
}
-OP *DataAlias_pp_rv2hv(pTHX) {
+STATIC OP *DataAlias_pp_rv2hv(pTHX) {
OP *ret = PL_ppaddr[OP_RV2HV](aTHX);
dSP;
SV *hv = POPs;
@@ -847,7 +854,7 @@
return ret;
}
-OP *DataAlias_pp_sassign(pTHX) {
+STATIC OP *DataAlias_pp_sassign(pTHX) {
dSP;
SV *a1, *a2, *value;
if (PL_op->op_private & OPpASSIGN_BACKWARDS) {
@@ -860,7 +867,7 @@
RETURN;
}
-OP *DataAlias_pp_aassign(pTHX) {
+STATIC OP *DataAlias_pp_aassign(pTHX) {
dSP;
SV **left, **llast, **right, **rlast;
I32 gimme = GIMME_V;
@@ -1047,7 +1054,7 @@
RETURN;
}
-OP *DataAlias_pp_andassign(pTHX) {
+STATIC OP *DataAlias_pp_andassign(pTHX) {
dSP;
SV *a2 = POPs;
SV *sv = da_fetch(aTHX_ TOPs, a2);
@@ -1059,7 +1066,7 @@
RETURN;
}
-OP *DataAlias_pp_orassign(pTHX) {
+STATIC OP *DataAlias_pp_orassign(pTHX) {
dSP;
SV *a2 = POPs;
SV *sv = da_fetch(aTHX_ TOPs, a2);
@@ -1072,7 +1079,7 @@
}
#if DA_HAVE_OP_DORASSIGN
-OP *DataAlias_pp_dorassign(pTHX) {
+STATIC OP *DataAlias_pp_dorassign(pTHX) {
dSP;
SV *a2 = POPs;
SV *sv = da_fetch(aTHX_ TOPs, a2);
@@ -1085,7 +1092,7 @@
}
#endif
-OP *DataAlias_pp_push(pTHX) {
+STATIC OP *DataAlias_pp_push(pTHX) {
dSP; dMARK; dORIGMARK; dTARGET;
AV *av = (AV *) *++MARK;
I32 i;
@@ -1100,7 +1107,7 @@
RETURN;
}
-OP *DataAlias_pp_unshift(pTHX) {
+STATIC OP *DataAlias_pp_unshift(pTHX) {
dSP; dMARK; dORIGMARK; dTARGET;
AV *av = (AV *) *++MARK;
I32 i = 0;
@@ -1114,7 +1121,7 @@
RETURN;
}
-OP *DataAlias_pp_splice(pTHX) {
+STATIC OP *DataAlias_pp_splice(pTHX) {
dSP; dMARK; dORIGMARK;
I32 ins = SP - MARK - 3;
AV *av = (AV *) MARK[1];
@@ -1168,7 +1175,7 @@
RETURN;
}
-OP *DataAlias_pp_leave(pTHX) {
+STATIC OP *DataAlias_pp_leave(pTHX) {
dSP;
SV **newsp;
PMOP *newpm;
@@ -1208,7 +1215,7 @@
return NORMAL;
}
-OP *DataAlias_pp_return(pTHX) {
+STATIC OP *DataAlias_pp_return(pTHX) {
dSP; dMARK;
I32 cxix;
PERL_CONTEXT *cx;
@@ -1284,8 +1291,8 @@
if (optype == OP_REQUIRE && !SvTRUE(sv)
&& (gimme == G_SCALAR || MARK == SP)) {
sv = cx->blk_eval.old_namesv;
- hv_delete(GvHVn(PL_incgv), SvPVX_const(sv), SvCUR(sv),
- G_DISCARD);
+ (void) hv_delete(GvHVn(PL_incgv), SvPVX_const(sv),
+ SvCUR(sv), G_DISCARD);
DIE(aTHX_ "%"SVf" did not return a true value", sv);
}
break;
@@ -1297,6 +1304,7 @@
break;
default:
DIE(aTHX_ "panic: return");
+ retop = NULL; /* suppress "uninitialized" warning */
}
TAINT_NOT;
@@ -1334,14 +1342,14 @@
return retop;
}
-OP *DataAlias_pp_leavesub(pTHX) {
+STATIC OP *DataAlias_pp_leavesub(pTHX) {
if (++PL_markstack_ptr == PL_markstack_max)
markstack_grow();
*PL_markstack_ptr = cxstack[cxstack_ix].blk_oldsp;
return DataAlias_pp_return(aTHX);
}
-OP *DataAlias_pp_entereval(pTHX) {
+STATIC OP *DataAlias_pp_entereval(pTHX) {
dDAforce;
PERL_CONTEXT *iscope = da_iscope;
I32 inside = da_inside;
@@ -1361,7 +1369,7 @@
return ret;
}
-OP *DataAlias_pp_copy(pTHX) {
+STATIC OP *DataAlias_pp_copy(pTHX) {
dSP; dMARK;
SV *sv;
switch (GIMME_V) {
@@ -1728,14 +1736,18 @@
char *s, *start_s;
CV *cv;
o = da_old_ck_rv2cv(aTHX_ o);
+#if (PERL_COMBI_VERSION >= 5009005)
+ if (!PL_parser)
+ return o;
+#endif
+ if (PL_lex_state != LEX_NORMAL && PL_lex_state != LEX_INTERPNORMAL)
+ return o; /* not lexing? */
kid = cUNOPo->op_first;
if (kid->op_type != OP_GV || !DA_ACTIVE || (
(cv = GvCV(kGVOP_gv)) != da_cv && cv != da_cvc ))
return o;
if (o->op_private & OPpENTERSUB_AMPER)
return o;
- if (PL_lex_state != LEX_NORMAL && PL_lex_state != LEX_INTERPNORMAL)
- return o; /* not lexing? */
SvPOK_off(cv);
o->op_ppaddr = da_tag_rv2cv;
if (cv == da_cv)
@@ -1773,6 +1785,23 @@
if ((PL_nexttype[PL_nexttoke++] = yylex()) == '{') {
PL_nexttype[PL_nexttoke++] = DO;
sv_setpv((SV *) cv, "$");
+ if (PERL_COMBI_VERSION >= 5011002 &&
+ *PL_bufptr == '(') {
+ /*
+ * A paren here triggers special lexer
+ * behaviour for a parenthesised argument
+ * list, which screws up the normal
+ * parsing that we want to continue.
+ * Suppress it by injecting a semicolon,
+ * which is otherwise a no-op coming just
+ * after the opening brace of a block.
+ */
+ Move(PL_bufptr, PL_bufptr+1,
+ PL_bufend+1-PL_bufptr, char);
+ *PL_bufptr = ';';
+ PL_bufend++;
+ SvCUR(PL_linestr)++;
+ }
}
if(PL_lex_state != LEX_KNOWNEXT) {
PL_lex_defer = PL_lex_state;
@@ -1826,9 +1855,12 @@
STATIC OP *da_ck_entersub(pTHX_ OP *o) {
dDA;
OP *kid = cUNOPo->op_first;
- OP *last = kLISTOP->op_last;
- OP *tmp;
+ OP *last, *tmp;
int inside;
+ if (!(kid->op_type == OP_LIST ||
+ (kid->op_type == OP_NULL && kid->op_targ == OP_LIST)))
+ return da_old_ck_entersub(aTHX_ o);
+ last = kLISTOP->op_last;
if (!DA_ACTIVE || !(kid->op_flags & OPf_KIDS)
|| last->op_ppaddr != da_tag_rv2cv)
return da_old_ck_entersub(aTHX_ o);
Modified: trunk/libdata-alias-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-alias-perl/Changes?rev=73659&op=diff
==============================================================================
--- trunk/libdata-alias-perl/Changes (original)
+++ trunk/libdata-alias-perl/Changes Wed Apr 27 18:52:58 2011
@@ -1,4 +1,21 @@
-Revision history for Perl extension Data::Alias
+version 1.13; 2011-04-25
+
+ * bugfix: prevent the lexer getting confused if the first thing inside
+ an alias{} block is an open paren
+
+ * bugfix: don't crash if an rv2cv op is built with PL_parser null
+
+ * bugfix: handle variant structure of entersub op which lacks (ex-)list
+ op as direct child
+
+ * bugfix: squash bogus dtrace-related macro definitions that are picked
+ up due to defining PERL_CORE
+
+ * switch all pp functions to internal linkage
+
+ * avoid some compiler warnings
+
+ * include .cvsignore file in distribution
1.12 Tue Feb 22 20:47 GMT 2011
- Updated to work with Perl version 5.13.10, where GvGP() and
Modified: trunk/libdata-alias-perl/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-alias-perl/MANIFEST?rev=73659&op=diff
==============================================================================
--- trunk/libdata-alias-perl/MANIFEST (original)
+++ trunk/libdata-alias-perl/MANIFEST Wed Apr 27 18:52:58 2011
@@ -1,3 +1,4 @@
+.cvsignore
Alias.xs
Changes
inc/Module/Install.pm
@@ -16,6 +17,7 @@
t/01_deref.t
t/03_copy.t
t/04_alias_parse.t
+t/04_swap.t
t/05_alias_parse2.t
t/06_alias_scope.t
t/07_alias_anon_array.t
Modified: trunk/libdata-alias-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-alias-perl/META.yml?rev=73659&op=diff
==============================================================================
--- trunk/libdata-alias-perl/META.yml (original)
+++ trunk/libdata-alias-perl/META.yml Wed Apr 27 18:52:58 2011
@@ -16,4 +16,4 @@
- t
requires:
perl: 5.8.1
-version: 1.12
+version: 1.13
Modified: trunk/libdata-alias-perl/README
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-alias-perl/README?rev=73659&op=diff
==============================================================================
--- trunk/libdata-alias-perl/README (original)
+++ trunk/libdata-alias-perl/README Wed Apr 27 18:52:58 2011
@@ -1,4 +1,4 @@
-Data::Alias 1.12 - Comprehensive set of aliasing operations
+Data::Alias 1.13 - Comprehensive set of aliasing operations
System requirements:
Modified: trunk/libdata-alias-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-alias-perl/debian/changelog?rev=73659&op=diff
==============================================================================
--- trunk/libdata-alias-perl/debian/changelog (original)
+++ trunk/libdata-alias-perl/debian/changelog Wed Apr 27 18:52:58 2011
@@ -1,11 +1,15 @@
-libdata-alias-perl (1.12-1) UNRELEASED; urgency=low
+libdata-alias-perl (1.13-1) UNRELEASED; urgency=low
Fix only affects perl 5.13.10
WAITS-FOR: perl 5.13
- * New upstream release
+ [ Jonathan Yu ]
+ * New upstream release 1.12
- -- Jonathan Yu <jawnsy at cpan.org> Sat, 26 Feb 2011 22:38:33 -0500
+ [ gregor herrmann ]
+ * New upstream release 1.13.
+
+ -- gregor herrmann <gregoa at debian.org> Wed, 27 Apr 2011 20:51:29 +0200
libdata-alias-perl (1.11-1) unstable; urgency=low
Modified: trunk/libdata-alias-perl/lib/Data/Alias.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-alias-perl/lib/Data/Alias.pm?rev=73659&op=diff
==============================================================================
--- trunk/libdata-alias-perl/lib/Data/Alias.pm (original)
+++ trunk/libdata-alias-perl/lib/Data/Alias.pm Wed Apr 27 18:52:58 2011
@@ -5,7 +5,7 @@
use strict;
use warnings;
-our $VERSION = '1.12';
+our $VERSION = '1.13';
use base 'Exporter';
use base 'DynaLoader';
More information about the Pkg-perl-cvs-commits
mailing list