summaryrefslogtreecommitdiff
path: root/pp.c
diff options
context:
space:
mode:
Diffstat (limited to 'pp.c')
-rw-r--r--pp.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/pp.c b/pp.c
index aeaca4c607..c65ed1c8c9 100644
--- a/pp.c
+++ b/pp.c
@@ -604,8 +604,11 @@ PP(pp_study)
if(unop->op_first && unop->op_first->op_type == OP_PUSHRE) {
PMOP *pm = (PMOP *)unop->op_first;
SV *rv = sv_newmortal();
+ REGEXP *re = pm->op_pmregexp;
+
sv = newSVrv(rv, "Regexp");
- sv_magic(sv,(SV*)ReREFCNT_inc(pm->op_pmregexp),'r',0,0);
+ sv_setpvn(sv,re->precomp,re->prelen);
+ sv_magic(sv,(SV*)ReREFCNT_inc(re),'r',0,0);
RETURNX(PUSHs(rv));
}