| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fix for [perl #21469]:
since the GP may be pulled from under us and freed, coredumps and strange
things can happen.
Fix this by storing a pointer to the GV in the loop block, rather than a
pointer to the GvSV slot. The ITHREADS variant already stores GV rather
than than &GvSV; extend this to non-threaded builds too.
Also, for both threaded and non-threaded, it used to push &GvSV on the
save stack. Fix this by introducing a new save type, SAVEt_GVSV.
This behaves similarly to SAVEt_SV, but without magic get/set.
This means that
for $package_var (...)
is now close in behaviour to
local $package_var = ...
(except for the magic bit).
|
|
|
|
| |
This uses a new type, SAVEt_INT_SMALL.
|
|
|
|
| |
This uses a new type, SAVEt_I32_SMALL.
|
|
|
|
| |
This makes the other 26 (or 58) bits available for save data.
|
|
|
|
|
| |
SAVEBOOL() should only be used on variables of type bool; casting
pointers to variables of other types into bool* is just wrong.
|
|
|
|
|
|
| |
It's possible that someone has built a module with -DDEBUGGING, but they're
using it against a perl built non-DEBUGGING, in which case PL_scopestack_name
will be NULL. Better to skip the checks than to SEGV.
|
|
|
|
|
|
| |
Most compilers will store only a single copy of identical literal
strings. So changing that assert to check the pointer first would
significantly reduce the cost.
|
|
|
|
| |
ENTER/LEAVE when debugging is enabled
|
|
|
|
| |
save_hdelete() is just like save_delete() except that it takes an SV instead of char buffer.
|
|
|
|
| |
When set, save_scalar_at() doesn't replace the given SV by a fresh new one. local magic is not called in this case.
|
|
|
|
| |
It's the symmetric of save_helem_flags(). save_aelem() is now a macro wrapping around save_aelem_flags().
|
|
|
|
| |
warnings on 64-bit platforms.
|
| |
|
|
|
|
|
|
| |
scope.c. "Inlined" macro functions in scope.h are actually space
inefficient.
p4raw-id: //depot/perl@34965
|
|
|
|
|
| |
This brings it to the same order as save_aelem() or save_pushi32ptr().
p4raw-id: //depot/perl@34964
|
|
|
| |
p4raw-id: //depot/perl@34963
|
|
|
| |
p4raw-id: //depot/perl@34960
|
|
|
|
|
|
|
| |
SAVEPARSER() in terms of save_pushptr(). This shinks the exectuable
by about 4K. Maybe some of the other scope.h macros should become
functions.
p4raw-id: //depot/perl@34958
|
|
|
|
|
|
|
|
|
| |
SSCHECK(2);
SSPUSHPTR(o);
SSPUSHINT(SAVEt_FREEOP);
into a single function Perl_save_pushptr(ptr, type), which the others
call. Implement the others as macros. This reduces the object code size.
p4raw-id: //depot/perl@34956
|
|
|
|
|
|
|
|
|
|
|
|
| |
handler to SIG_DFL
Message-ID: <20081112234504.GI2062@tytlal.topaz.cx>
Updated patch to retain source compatibility.
Plus using the correct PERL_ARGS_ASSERT_SAVE_HELEM_FLAGS
macro and running make regen.
p4raw-id: //depot/perl@34829
|
|
|
| |
p4raw-id: //depot/perl@34619
|
|
|
|
|
|
|
|
|
|
| |
away const, returning a void *. Add MUTABLE_SV(sv) which uses this, and
replace all (SV *) casts either with MUTABLE_SV(sv), or (const SV *).
This probably still needs some work - assigning to SvPVX() and SvRV()
is now likely to generate a casting error. The core doesn't do this.
But as-is it's finding bugs that can be fixed.
p4raw-id: //depot/perl@34605
|
|
|
| |
p4raw-id: //depot/perl@34585
|
|
|
|
|
|
|
| |
never used are more obfuscation than clarification, so inline the only
use of SAVECOPLABEL_FREE(), and remove the unthreaded variant and
both SAVECOPLABEL()s. Exterminate! Exterminate! Exterminate!
p4raw-id: //depot/perl@33654
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pad is shared between POPLOOP, using itersave, and the end of scope
restore action requested by Perl_save_padsv(). In fact, the only user
of SAVEt_PADSV is pp_enteriter, and it already provides enough
information to allow it to perform the sv_2mortal() in POPLOOP.
So make it do so. Rather than creating a new routine, use the existing
routine because nothing else (at least nothing else known to Google's
codesearch) uses it. But rename it just in case something we can't see
is being naughty and using our private functions - they will get
link errors against 5.12.
All this means that itersave is now redundant. So remove it.
This makes struct context 48 bytes on ILP32 platforms with 32bit IVs,
down from 64 bytes in 5.10. 33% more context stack in the same memory.
p4raw-id: //depot/perl@33080
|
|
|
| |
p4raw-id: //depot/perl@32793
|
|
|
|
|
|
| |
files that generate .h files, so they'll be ready
next time.
p4raw-id: //depot/perl@29695
|
|
|
| |
p4raw-id: //depot/perl@29678
|
|
|
|
|
|
|
| |
Message-ID: <4586084E.8040706@iki.fi>
Introduce CopLABEL() macro to deal with labels attached to COPs.
p4raw-id: //depot/perl@29585
|
|
|
|
|
|
| |
From: Dave Bailey (via RT) <perlbug-followup@perl.org>
Message-ID: <rt-3.5.HEAD-4979-1161103047-337.40557-75-0@perl.org>
p4raw-id: //depot/perl@29033
|
|
|
| |
p4raw-id: //depot/perl@28252
|
|
|
|
|
| |
Message-ID: <20060424232038.7550f9b6@r2d2>
p4raw-id: //depot/perl@27962
|
|
|
|
|
|
|
| |
save the warnings on PL_compiling, so constraining its use to what we
can test seems to make sense. Particularly as testing Perl_ss_dup is
tricky.
p4raw-id: //depot/perl@27805
|
|
|
|
|
|
| |
for in Perl_ss_dup, hence nothing is testing it and nothing will alert
us if it breaks.
p4raw-id: //depot/perl@27792
|
|
|
|
|
|
|
| |
directly (shared) malloc()ed buffer holding the warnings bitmask.
This avoids bugs/crashes when the interpreter that created an optree
is freed but the optree remains in use by other interpreters.
p4raw-id: //depot/perl@27779
|
|
|
|
|
|
| |
This approach is almost certainly not only wrong, but also doomed.
But it's needed to build a correct solution.
p4raw-id: //depot/perl@27768
|
|
|
| |
p4raw-id: //depot/perl@27728
|
|
|
| |
p4raw-id: //depot/perl@27671
|
|
|
| |
p4raw-id: //depot/perl@27666
|
|
|
|
|
|
| |
state of %^H as an eleventh value from caller. This allows users to
write pragmas.
p4raw-id: //depot/perl@27643
|
|
|
| |
p4raw-id: //depot/perl@27161
|
|
|
|
|
| |
Message-ID: <20050602050238.GA4001@petdance.com>
p4raw-id: //depot/perl@24666
|
|
|
|
|
| |
so that a JMPENV* entry can be added to struct block_eval
p4raw-id: //depot/perl@24361
|
|
|
|
|
| |
Message-ID: <B356D8F434D20B40A8CEDAEC305A1F2453D653@esebe105.NOE.Nokia.com>
p4raw-id: //depot/perl@24271
|
|
|
| |
p4raw-id: //depot/perl@24106
|
|
|
| |
p4raw-id: //depot/perl@23780
|
|
|
| |
p4raw-id: //depot/perl@23161
|
|
|
|
|
|
|
|
| |
split() does a SWITCHSTACK to directly split to an array, but
if it subsequently dies (eg the regex triggers a 'use utf8' which
is then denied by Safe), then the switch doesn't get undone. Add
a new save type to allow for this.
p4raw-id: //depot/perl@23023
|
|
|
| |
p4raw-id: //depot/perl@22594
|
|
|
| |
p4raw-id: //depot/perl@22509
|