diff options
author | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2006-09-07 09:49:31 +0000 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2006-09-07 09:49:31 +0000 |
commit | 4eb3f1b8e609839c557fabf2ba7f665d22a6a6be (patch) | |
tree | a72a333e8a41dcaf24deead3d34ccf3017889bc3 /ext/Opcode/Opcode.xs | |
parent | 6295adb52568284405608d8c98e00b024ac4573a (diff) | |
download | perl-4eb3f1b8e609839c557fabf2ba7f665d22a6a6be.tar.gz |
Invalidate ISA and method caches when calling a safe compartment
(bug #39887)
Remove XS_VERSION, make it equal to VERSION
p4raw-id: //depot/perl@28797
Diffstat (limited to 'ext/Opcode/Opcode.xs')
-rw-r--r-- | ext/Opcode/Opcode.xs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/Opcode/Opcode.xs b/ext/Opcode/Opcode.xs index 86135e0d97..eba1c86d7d 100644 --- a/ext/Opcode/Opcode.xs +++ b/ext/Opcode/Opcode.xs @@ -314,6 +314,10 @@ PPCODE: dummy_hv = save_hash(PL_incgv); GvHV(PL_incgv) = (HV*)SvREFCNT_inc(GvHV(gv_HVadd(gv_fetchpv("INC",TRUE,SVt_PVHV)))); + /* Invalidate ISA and method caches */ + ++PL_sub_generation; + hv_clear(PL_stashcache); + PUSHMARK(SP); perl_call_sv(codesv, GIMME|G_EVAL|G_KEEPERR); /* use callers context */ sv_free( (SV *) dummy_hv); /* get rid of what save_hash gave us*/ |