'Scalar-List-Utils' =>
{
'MAINTAINER' => 'gbarr',
- 'DISTRIBUTION' => 'GBARR/Scalar-List-Utils-1.22.tar.gz',
+ 'DISTRIBUTION' => 'GBARR/Scalar-List-Utils-1.23.tar.gz',
# Note that perl uses its own version of Makefile.PL
'FILES' => q[cpan/List-Util],
'EXCLUDED' => [ qr{^inc/Module/},
+1.23 -- Wed Mar 10 20:50:00 CST 2010
+
+ * Add a test file to ensure 'GETMAGIC' called once [gfx]
+ * "GETMAGIC" should be called only once [gfx]
+ * Use PERL_NO_GET_CONTEXT for efficiency (see perlguts) [gfx]
+ * Don't care about dVAR. ExtUtils::ParseXS deals with it. [gfx]
+ * t/p_max.t, t/p_min.t fail on perl5.8.1. [tokuhirom]
+ * avoid non-portable warnings
+ * Fix PP::reftype in edge cases [gfx]
+
1.22 -- Sat Nov 14 09:26:15 CST 2009
* silence a compiler warning about an unreferenced local variable [Steve Hay]
* This program is free software; you can redistribute it and/or
* modify it under the same terms as Perl itself.
*/
-
+#define PERL_NO_GET_CONTEXT /* we want efficiency */
#include <EXTERN.h>
#include <perl.h>
#include <XSUB.h>
# ifndef SvTAINTED
static bool
-sv_tainted(SV *sv)
+sv_tainted(pTHX_ SV *sv)
{
if (SvTYPE(sv) >= SVt_PVMG && SvMAGIC(sv)) {
MAGIC *mg = mg_find(sv, 't');
}
# define SvTAINTED_on(sv) sv_magic((sv), Nullsv, 't', Nullch, 0)
-# define SvTAINTED(sv) (SvMAGICAL(sv) && sv_tainted(sv))
+# define SvTAINTED(sv) (SvMAGICAL(sv) && sv_tainted(aTHX_ sv))
# endif
# define PL_defgv defgv
# define PL_op op
#define dNOOP extern int Perl___notused PERL_UNUSED_DECL
#endif
-#ifndef dVAR
-#define dVAR dNOOP
-#endif
-
#ifndef GvSVn
# define GvSVn GvSV
#endif
PROTOTYPE: &@
CODE:
{
- dVAR; dMULTICALL;
+ dMULTICALL;
SV *ret = sv_newmortal();
int index;
GV *agv,*bgv,*gv;
PROTOTYPE: &@
CODE:
{
- dVAR; dMULTICALL;
+ dMULTICALL;
int index;
GV *gv;
HV *stash;
PROTOTYPE: @
CODE:
{
- dVAR;
int index;
#if (PERL_VERSION < 9)
struct op dmy_op;
{
if (SvMAGICAL(sv))
mg_get(sv);
- if(!sv_isobject(sv)) {
+ if(!(SvROK(sv) && SvOBJECT(SvRV(sv)))) {
XSRETURN_UNDEF;
}
RETVAL = (char*)sv_reftype(SvRV(sv),TRUE);
@ISA = qw(Exporter);
@EXPORT_OK = qw(first min max minstr maxstr reduce sum shuffle);
-$VERSION = "1.22";
+$VERSION = "1.23";
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@ISA = qw(Exporter);
@EXPORT = qw(first min max minstr maxstr reduce sum shuffle);
-$VERSION = "1.22";
+$VERSION = "1.23";
$VERSION = eval $VERSION;
sub reduce (&@) {
use vars qw($VERSION);
use List::Util;
-$VERSION = "1.22"; # FIXUP
+$VERSION = "1.23"; # FIXUP
$VERSION = eval $VERSION; # FIXUP
sub _VERSION { # FIXUP
@ISA = qw(Exporter);
@EXPORT_OK = qw(blessed dualvar reftype weaken isweak tainted readonly openhandle refaddr isvstring looks_like_number set_prototype);
-$VERSION = "1.22";
+$VERSION = "1.23";
$VERSION = eval $VERSION;
unless (defined &dualvar) {
@ISA = qw(Exporter);
@EXPORT = qw(blessed reftype tainted readonly refaddr looks_like_number);
-$VERSION = "1.22";
+$VERSION = "1.23";
$VERSION = eval $VERSION;
sub blessed ($) {
$addr =~ /0x(\w+)/;
local $^W;
+ no warnings 'portable';
hex($1);
}
{
my %tmap = qw(
- B::HV HASH
- B::AV ARRAY
- B::CV CODE
- B::IO IO
- B::NULL SCALAR
- B::NV SCALAR
- B::PV SCALAR
- B::GV GLOB
- B::RV REF
+ B::NULL SCALAR
+
+ B::HV HASH
+ B::AV ARRAY
+ B::CV CODE
+ B::IO IO
+ B::GV GLOB
B::REGEXP REGEXP
);
use overload
'""' => sub { ${$_[0]} },
'+0' => sub { ${$_[0]} },
+ '>' => sub { ${$_[0]} > ${$_[1]} },
fallback => 1;
sub new {
my $class = shift;
use overload
'""' => sub { ${$_[0]} },
'+0' => sub { ${$_[0]} },
+ '<' => sub { ${$_[0]} < ${$_[1]} },
fallback => 1;
sub new {
my $class = shift;