| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
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
|