| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
and increase its scope to all the perl core rather than just pad.c.
The scope needs to increase because we'll need to use it in op.c shortly,
and the rename is because it's about to lose any significance as a
numerical value, and just become a magic number to be tested for equality.
|
|
|
|
| |
it reference counted. Properly solves [perl #66094]
|
| |
|
|
|
|
|
| |
Provide a flag option to Perl_pad_add_name(), pad_add_NO_DUP_CHECK, to supress
the call.
|
|
|
|
|
|
| |
The only user of the pad_add_FAKE flag was S_pad_findlex(), so move the relevant
code there from Perl_pad_add_name(), and have S_pad_findlex() call
S_pad_add_name_sv() directly. This eliminates the pad_add_FAKE flag completely.
|
|
|
|
|
|
| |
Currently only pad_add_OUR is used. The length is cross-checked against
strlen() on the pointer, but the intent is to re-work the entire pad API to
be UTF-8 aware, from the current situation of char * pointers only.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Message-ID: <20081026231720.34258457@r2d2>
Patch description from the original email :
I tried to make tests pass on a perl built with -DPERL_POISON,
as some tests were dying with segfaults. They all originated
from the same source: clear_yystack() after a compile error. [...]
As far as I can see, after croaking the newly
created CV is destroyed and its pad is undef'd. [...]
This will SvREFCNT_dec PL_comppad and set PL_comppad to NULL.
However, later, in clear_yystack(), when the ops are freed, the
old PL_comppad is restored by PAD_RESTORE_LOCAL, as a reference
is still in ps->comppad. But now the pad AV is already dead.
Normally (i.e. without PERL_POISON), the dead AV will have
AvARRAY(av) set to NULL by av_undef(). So PAD_RESTORE_LOCAL will
actually set PL_curpad to NULL, and thus pad_free() will not
attempt to do anything.
But with PERL_POISON, the storage for AvARRAY(av) (i.e. sv_u)
will be reused for chaining the free SV heads in the arena
(as opposed to SvANY(sv) in case of !PERL_POISON). This means
that PAD_RESTORE_LOCAL will find AvARRAY(av) non-NULL and will
set PL_curpad to that value, finally causing the segfault in
pad_free().
While I think I understand what's going on, I don't have the
slightest clue how to properly fix this. Given that it's not
a problem only under PERL_POISON, but always (as dead SV heads
are being used), I think it should ultimately be fixed.
The only thing I can offer right now is a patch to make it
work with PERL_POISON as good (or as bad) as without by
making PAD_RESTORE_LOCAL explicitly check if the pad passed
in is already dead and refusing to use it if it is.
|
|
|
| |
p4raw-id: //depot/perl@34608
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
From: "Reini Urban" <rurban@x-ray.at>
Message-ID: <6910a60806080717h1aaaef1fh425a2ef21a62c9ed@mail.gmail.com>
p4raw-id: //depot/perl@34030
|
|
|
| |
p4raw-id: //depot/perl@32982
|
|
|
| |
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@29679
|
|
|
| |
p4raw-id: //depot/perl@29633
|
|
|
| |
p4raw-id: //depot/perl@29632
|
|
|
|
|
| |
B.pm, so that B::Concise doesn't need to hard code magic numbers.
p4raw-id: //depot/perl@29631
|
|
|
|
|
|
| |
in the xnv union. This frees up IVX for the PL_generation code, which
in turn will allow SvCUR to return to its real purpose.
p4raw-id: //depot/perl@29630
|
|
|
|
|
|
| |
4 macros COP_SEQ_RANGE_LOW, COP_SEQ_RANGE_HIGH, PARENT_PAD_INDEX
and PARENT_FAKELEX_FLAGS
p4raw-id: //depot/perl@29629
|
|
|
|
|
|
| |
Message-ID: <44375F23.6030900@gmail.com>
Date: Sat, 08 Apr 2006 09:58:43 +0300
p4raw-id: //depot/perl@27754
|
|
|
| |
p4raw-id: //depot/perl@27419
|
|
|
|
|
| |
OURSTASH. Set the stash with OURSTASH_SET.
p4raw-id: //depot/perl@27306
|
|
|
|
|
| |
overlay SVs_PADTMP with SVpad_TYPED and SVs_PADMY with SVpad_OUR.
p4raw-id: //depot/perl@27297
|
|
|
|
|
|
| |
SVpad_OUR with macros SvPAD_TYPED(), SvPAD_OUR() etc, to abstract
away the flags bits acutally used to store this information.
p4raw-id: //depot/perl@27294
|
|
|
| |
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
|
|
|
| |
p4raw-id: //depot/perl@26737
|
|
|
| |
p4raw-id: //depot/perl@25233
|
|
|
| |
p4raw-id: //depot/perl@25042
|
|
|
|
|
| |
Message-Id: <20050419163844.GA19747@petdance.com>
p4raw-id: //depot/perl@24256
|
|
|
|
|
|
| |
Message-ID: <20050419000925.GA21640@mccoy.peters.homeunix.org>
Date: Mon, 18 Apr 2005 19:09:25 -0500
p4raw-id: //depot/perl@24248
|
|
|
| |
p4raw-id: //depot/perl@24175
|
|
|
|
|
|
| |
PL_main_root is freed; this may not have been be the case if a
thread other than the main one is the last to be destroyed
p4raw-id: //depot/perl@21470
|
|
|
|
|
|
|
| |
(Lots of Perl 5 source code archaeology was involved.)
Larry didn't make strangled noises when I showed him
the patch, either :-)
p4raw-id: //depot/perl@19242
|
|
|
| |
p4raw-id: //depot/perl@18807
|
|
|
| |
p4raw-id: //depot/perl@18801
|
|
|
|
|
| |
Message-ID: <20021214191649.B3992@fdgroup.com>
p4raw-id: //depot/perl@18311
|
|
|
|
|
| |
Message-ID: <20021107163802.C25337@fdgroup.com>
p4raw-id: //depot/perl@18142
|
|
|
|
|
| |
Message-ID: <20021018133640.A19172@fdgroup.com>
p4raw-id: //depot/perl@18048
|
|
|
| |
p4raw-id: //depot/perl@17975
|
|
Message-ID: <20020925234023.A20044@fdgroup.com>
p4raw-id: //depot/perl@17953
|