Skip to content

Commit

Permalink
Revert "avoid identical stack traces"
Browse files Browse the repository at this point in the history
This reverts commit f2f32cd.
  • Loading branch information
iabyn committed Apr 27, 2020
1 parent d0b5de5 commit 79f75ea
Show file tree
Hide file tree
Showing 6 changed files with 2 additions and 63 deletions.
3 changes: 0 additions & 3 deletions MANIFEST
Expand Up @@ -5648,9 +5648,6 @@ t/lib/feature/nonesuch Tests for enabling/disabling nonexistent feature
t/lib/feature/removed Tests for enabling/disabling removed feature
t/lib/feature/say Tests for enabling/disabling say feature
t/lib/feature/switch Tests for enabling/disabling switch feature
t/lib/GH_15109/Apack.pm test Module for caller.t
t/lib/GH_15109/Bpack.pm test Module for caller.t
t/lib/GH_15109/Cpack.pm test Module for caller.t
t/lib/h2ph.h Test header file for h2ph
t/lib/h2ph.pht Generated output from h2ph.h by h2ph, for comparison
t/lib/locale/latin1 Part of locale.t in Latin 1
Expand Down
24 changes: 1 addition & 23 deletions op.c
Expand Up @@ -11722,32 +11722,10 @@ S_process_special_blocks(pTHX_ I32 floor, const char *const fullname,
(void)CvGV(cv);
if (floor) LEAVE_SCOPE(floor);
ENTER;

SAVEVPTR(PL_curcop);
if (PL_curcop == &PL_compiling) {
/* Avoid pushing the "global" &PL_compiling onto the
* context stack. For example, a stack trace inside
* nested use's would show all calls coming from whoever
* most recently updated PL_compiling.cop_file and
* cop_line. So instead, temporarily set PL_curcop to a
* private copy of &PL_compiling. PL_curcop will soon be
* set to point back to &PL_compiling anyway but only
* after the temp value has been pushed onto the context
* stack as blk_oldcop.
* This is slightly hacky, but necessary. Note also
* that in the brief window before PL_curcop is set back
* to PL_compiling, IN_PERL_COMPILETIME/IN_PERL_RUNTIME
* will give the wrong answer.
*/
Newx(PL_curcop, 1, COP);
StructCopy(&PL_compiling, PL_curcop, COP);
PL_curcop->op_slabbed = 0;
SAVEFREEPV(PL_curcop);
}

PUSHSTACKi(PERLSI_REQUIRE);
SAVECOPFILE(&PL_compiling);
SAVECOPLINE(&PL_compiling);
SAVEVPTR(PL_curcop);

DEBUG_x( dump_sub(gv) );
Perl_av_create_and_push(aTHX_ &PL_beginav, MUTABLE_SV(cv));
Expand Down
4 changes: 0 additions & 4 deletions t/lib/GH_15109/Apack.pm

This file was deleted.

4 changes: 0 additions & 4 deletions t/lib/GH_15109/Bpack.pm

This file was deleted.

11 changes: 0 additions & 11 deletions t/lib/GH_15109/Cpack.pm

This file was deleted.

19 changes: 1 addition & 18 deletions t/op/caller.t
Expand Up @@ -5,7 +5,7 @@ BEGIN {
chdir 't' if -d 't';
require './test.pl';
set_up_inc('../lib');
plan( tests => 109 ); # some tests are run in a BEGIN block
plan( tests => 97 ); # some tests are run in a BEGIN block
}

my @c;
Expand Down Expand Up @@ -335,22 +335,6 @@ $::testing_caller = 1;

do './op/caller.pl' or die $@;

# GH #15109
# See that callers within a nested series of 'use's gets the right
# filenames.
{
local @INC = 'lib/GH_15109/';
# Apack use's Bpack which use's Cpack which populates @Cpack::caller
# with the file:N of all the callers
eval 'use Apack; 1';
is($@, "", "GH #15109 - eval");
is (scalar(@Cpack::callers), 10, "GH #15109 - callers count");
like($Cpack::callers[$_], qr{GH_15109/Bpack.pm:3}, "GH #15109 level $_") for 0..2;
like($Cpack::callers[$_], qr{GH_15109/Apack.pm:3}, "GH #15109 level $_") for 3..5;
like($Cpack::callers[$_], qr{\(eval \d+\):1}, "GH #15109 level $_") for 6..8;
like($Cpack::callers[$_], qr{caller\.t}, "GH #15109 level $_") for 9;
}

{
package RT129239;
BEGIN {
Expand All @@ -364,4 +348,3 @@ do './op/caller.pl' or die $@;
#line 12345 "virtually/op/caller.t"
}
}

0 comments on commit 79f75ea

Please sign in to comment.