| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This:
commit 8aacddc1ea3837f8f1a911d90c644451fc7cfc86
Author: Nick Ing-Simmons <nik@tiuk.ti.com>
Date: Tue Dec 18 15:55:22 2001 +0000
Tidied version of Jeffrey Friedl's <jfriedl@yahoo.com> restricted hashes
- added delete of READONLY value inhibit & test for same
- re-tabbed
p4raw-id: //depot/perlio@13760
essentially deprecated HvKEYS() in favor of HvUSEDKEYS(); this is
explained in line 144 (now 313) of file `hv.h':
/*
* HvKEYS gets the number of keys that actually exist(), and is provided
* for backwards compatibility with old XS code. The core uses HvUSEDKEYS
* (keys, excluding placeholdes) and HvTOTALKEYS (including placeholders)
*/
This commit simply puts that into practice, and is equivalent to running
the following (at least with a35ef416833511da752c4b5b836b7a8915712aab
checked out):
git grep -l HvKEYS | sed /hv.h/d | xargs sed -i s/HvKEYS/HvUSEDKEYS/
Notice that HvKEYS is currently just an alias for HvUSEDKEYS:
$ git show a35ef416833511da752c4b5b836b7a8915712aab:hv.h | sed -n 318p
#define HvKEYS(hv) HvUSEDKEYS(hv)
According to `make tests':
All tests successful.
|
|
|
|
|
|
|
|
|
|
|
|
| |
commit 20ee07fbbcfa6be9f90bb8e5474a4d69d7396617
introduced dieing in (s)printf when the format is tainted;
however it only worked when the format is part of an expression
(because TAINT_PROPER checks for PL_tainted being set).
Fix by doing TAINT_PROPER only after get magic has been done on the format
SV (which will set PL_tainted). This is done by moving the checks in
pp_sprintf and pp_prtf into do_sprintf() (which is called by the two pp
functions).
|
|
|
|
| |
It was never part of the public API, and only ever used by pp_{s,}cho{,m}p.
|
|
|
|
|
|
| |
They share code for dealing with PVAVs, PVHVs, read only values and handling
PL_encoding. They are not part of the public API, and Google codesearch shows
no users outside the core.
|
|
|
|
| |
Pass in an SV to hold the count, rather than returning the count.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All built-in functions that operate directly on array or hash
containers now also accept hard references to arrays or hashes:
|----------------------------+---------------------------|
| Traditional syntax | Terse syntax |
|----------------------------+---------------------------|
| push @$arrayref, @stuff | push $arrayref, @stuff |
| unshift @$arrayref, @stuff | unshift $arrayref, @stuff |
| pop @$arrayref | pop $arrayref |
| shift @$arrayref | shift $arrayref |
| splice @$arrayref, 0, 2 | splice $arrayref, 0, 2 |
| keys %$hashref | keys $hashref |
| keys @$arrayref | keys $arrayref |
| values %$hashref | values $hashref |
| values @$arrayref | values $arrayref |
| ($k,$v) = each %$hashref | ($k,$v) = each $hashref |
| ($k,$v) = each @$arrayref | ($k,$v) = each $arrayref |
|----------------------------+---------------------------|
This allows these built-in functions to act on long dereferencing
chains or on the return value of subroutines without needing to wrap
them in C<@{}> or C<%{}>:
push @{$obj->tags}, $new_tag; # old way
push $obj->tags, $new_tag; # new way
for ( keys %{$hoh->{genres}{artists}} ) {...} # old way
for ( keys $hoh->{genres}{artists} ) {...} # new way
For C<push>, C<unshift> and C<splice>, the reference will auto-vivify
if it is not defined, just as if it were wrapped with C<@{}>.
Calling C<keys> or C<values> directly on a reference gives a
substantial performance improvement over explicit dereferencing.
For C<keys>, C<values>, C<each>, when overloaded dereferencing is
present, the overloaded dereference is used instead of dereferencing
the underlying reftype. Warnings are issued about assumptions made in
the following three ambiguous cases:
(a) If both %{} and @{} overloading exists, %{} is used
(b) If %{} overloading exists on a blessed arrayref, %{} is used
(c) If @{} overloading exists on a blessed hashref, @{} is used
|
|
|
|
|
| |
This patch stops y from calling get-magic twice. (This has caused
double magick since as far back as 5.6.2.)
|
|
|
|
| |
TEMP instead of using TARG. Made appropriate TODO tests live.
|
|
|
|
|
| |
This reduces object code size, reducing CPU cache pressure on the non-exception
paths.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Replace ckWARN{,2,3,4}() && Perl_warner() with it, which trades reduced code
size (about 0.2%), for 1 more function call if warnings are not enabled.
However, if we're now in the L1 or L2 cache when we weren't previously, that's
still going to be a speed win.
|
|
|
|
|
|
|
|
| |
(MacOS support was removed from MakeMaker in 6.22, and merged to blead on
15th December 2004 with 5dca256ec738057dc331fb644a93eca44ad5fa14. After this
point MacOS wouldn't even have been able to build the perl binary, because it
would not have been able to build DynaLoader. If anyone wishes to resurrect
MacOS, start by reversing this commit and the relevant part of that commit.)
|
| |
|
|
|
|
|
|
|
| |
This fixes the following problem:
-e 'my $re = qr/x/; $re |= "y"'
assert failure under 5.10.0, 10-maint, bleed, but not 5.8.8
|
|
|
|
|
|
| |
Message-ID: <25940.1225611819@chthon>
Date: Sun, 02 Nov 2008 01:43:39 -0600
p4raw-id: //depot/perl@34698
|
|
|
|
|
|
| |
This is mostly to silence gcc's warning, "format not a string
literal and no format arguments".
p4raw-id: //depot/perl@34694
|
|
|
|
|
| |
erroneous const in dump.c.
p4raw-id: //depot/perl@34675
|
|
|
| |
p4raw-id: //depot/perl@34653
|
|
|
| |
p4raw-id: //depot/perl@34650
|
|
|
| |
p4raw-id: //depot/perl@34629
|
|
|
| |
p4raw-id: //depot/perl@34585
|
|
|
|
|
|
| |
From: "Vincent Pit" <perl@profvince.com>
Message-ID: <32964.147.210.17.175.1210858279.squirrel@147.210.17.175>
p4raw-id: //depot/perl@33831
|
|
|
|
|
|
| |
From: "Yitzchak Scott-Thoennes" <sthoenna@efn.org>
Message-ID: <47935.71.32.86.11.1204678469.squirrel@webmail.efn.org>
p4raw-id: //depot/perl@33457
|
|
|
|
|
|
|
|
|
|
|
|
| |
ability to create landmines that will explode under someone in the
future when they upgrade their compiler to one with better
optimisation. We've already done this at least twice.
(Yes, some of the assertions are after code that would already have
SEGVd because it already deferences a pointer, but they are put in
to make it easier to automate checking that each and every case is
covered.)
Add a tool, checkARGS_ASSERT.pl, to check that every case is covered.
p4raw-id: //depot/perl@33291
|
|
|
|
|
|
| |
the flags. Move its implementation just ahead of sv_2mortal()'s for
CPU cache locality. Refactor all code that can be to use this.
p4raw-id: //depot/perl@32818
|
|
|
|
|
| |
Message-Id: <B46A083E-A133-4D38-9BE8-BE1EB0AAA326@petdance.com>
p4raw-id: //depot/perl@31270
|
|
|
| |
p4raw-id: //depot/perl@29765
|
|
|
| |
p4raw-id: //depot/perl@29696
|
|
|
|
|
|
|
| |
and add support for %-
Message-ID: <9b18b3110612291245q792fe91cu69422d2b81bb4f0b@mail.gmail.com>
p4raw-id: //depot/perl@29682
|
|
|
|
|
| |
Message-ID: <20061210223232.0f3a5318@r2d2>
p4raw-id: //depot/perl@29506
|
|
|
|
|
| |
Message-ID: <9b18b3110610061016x5ddce965u30d9a821f632d450@mail.gmail.com>
p4raw-id: //depot/perl@28957
|
|
|
|
|
| |
Message-ID: <20060606150137.GA4434@petdance.com>
p4raw-id: //depot/perl@28363
|
|
|
| |
p4raw-id: //depot/perl@28029
|
|
|
|
|
| |
Message-ID: <20060424232038.7550f9b6@r2d2>
p4raw-id: //depot/perl@27962
|
|
|
|
|
| |
Message-ID: <20060424014509.GA29642@petdance.com>
p4raw-id: //depot/perl@27943
|
|
|
|
|
| |
we can have overlapping memory areas here
p4raw-id: //depot/perl@27897
|
|
|
|
|
|
| |
leak resources. I believe that it's spotted that you can skip all the
cases in the switch. Plug that hole.
p4raw-id: //depot/perl@27883
|
|
|
|
|
|
|
|
| |
the macro calls earlier (Coverity CID 84)
Message-Id: <20060417071937.C13346CF2D@aprikoosi.hut.fi>
Date: Mon, 17 Apr 2006 10:19:37 +0300 (EEST)
p4raw-id: //depot/perl@27859
|
|
|
| |
p4raw-id: //depot/perl@27857
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
one message. So both:
Subject: [PATCH] doop.c: one more code path where memory could leak (Coverity)
Message-Id: <20060416081925.680336CF2D@aprikoosi.hut.fi>
Date: Sun, 16 Apr 2006 11:19:25 +0300 (EEST)
and
Subject: [PATCH] doop.c: one more code path where memory could leak (Coverity)
From: jhi@cc.hut.fi (Jarkko Hietaniemi)
Message-Id: <20060416081925.680336CF2D@aprikoosi.hut.fi>
Date: Sun, 16 Apr 2006 11:19:25 +0300 (EEST)
p4raw-id: //depot/perl@27856
|
|
|
|
|
| |
allocated space for an initialised a trailing NUL.
p4raw-id: //depot/perl@27843
|
|
|
|
|
|
|
| |
(try valgrind on the new bop.t without the doop.c patch)
Message-Id: <20060413162046.5F9636D08C@ugli.hut.fi>
p4raw-id: //depot/perl@27801
|
|
|
|
|
| |
Message-Id: <20060402224657.B942.BQW10602@nifty.com>
p4raw-id: //depot/perl@27688
|
|
|
|
|
| |
Message-ID: <20060224205434.GA17867@petdance.com>
p4raw-id: //depot/perl@27334
|
|
|
| |
p4raw-id: //depot/perl@27238
|
|
|
|
|
|
| |
Message-ID: <20060203152449.GI12591@accognoscere.homeunix.org>
Date: Fri, 3 Feb 2006 16:24:49 +0100
p4raw-id: //depot/perl@27065
|
|
|
|
|
| |
Message-ID: <20060202093849.GD12591@accognoscere.homeunix.org>
p4raw-id: //depot/perl@27054
|
|
|
|
|
| |
Message-ID: <20060106155719.GB9035@petdance.com>
p4raw-id: //depot/perl@26676
|
|
|
|
|
| |
Message-ID: <43BE7C4D.1010302@gmail.com>
p4raw-id: //depot/perl@26675
|