summaryrefslogtreecommitdiff
path: root/util.c
diff options
context:
space:
mode:
authorBen Morrow <ben@morrow.me.uk>2009-10-21 15:33:55 +0100
committerRafael Garcia-Suarez <rgs@consttype.org>2009-10-22 23:19:23 +0200
commitdf052ff84a4fc5e49545a6877ffa22ba4d4e31db (patch)
treed842a1dfd05c28eeb6473fad3df63d5a63ca62c4 /util.c
parentf0826785082983bd9b5ba16476c6867f3b390fb9 (diff)
downloadperl-df052ff84a4fc5e49545a6877ffa22ba4d4e31db.tar.gz
Let SvRX(OK) recognise a bare REGEXP.
This means that re::is_regexp(${qr/x/}) will now return true.
Diffstat (limited to 'util.c')
-rw-r--r--util.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/util.c b/util.c
index b72f263dc5..50675d3e9e 100644
--- a/util.c
+++ b/util.c
@@ -6054,17 +6054,14 @@ Perl_my_dirfd(pTHX_ DIR * dir) {
REGEXP *
Perl_get_re_arg(pTHX_ SV *sv) {
- SV *tmpsv;
if (sv) {
if (SvMAGICAL(sv))
mg_get(sv);
- if (SvROK(sv) &&
- (tmpsv = MUTABLE_SV(SvRV(sv))) && /* assign deliberate */
- SvTYPE(tmpsv) == SVt_REGEXP)
- {
- return (REGEXP*) tmpsv;
- }
+ if (SvROK(sv))
+ sv = MUTABLE_SV(SvRV(sv));
+ if (SvTYPE(sv) == SVt_REGEXP)
+ return (REGEXP*) sv;
}
return NULL;