From 81e413dd293ca530aa3b6f9cd587b94ada3bd0a0 Mon Sep 17 00:00:00 2001 From: Nicholas Clark Date: Sun, 7 Nov 2010 15:03:43 +0000 Subject: [PATCH] Merge the implementation of B::REGEXP::{REGEXP,precomp} using ALIAS. --- ext/B/B.xs | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/ext/B/B.xs b/ext/B/B.xs index 813ad8f..fa72c9e 100644 --- a/ext/B/B.xs +++ b/ext/B/B.xs @@ -1582,20 +1582,19 @@ SvRV(sv) MODULE = B PACKAGE = B::REGEXP -IV -REGEX(sv) - B::REGEXP sv - CODE: - /* FIXME - can we code this method more efficiently? */ - RETVAL = PTR2IV(sv); - OUTPUT: - RETVAL - void -precomp(sv) +REGEX(sv) B::REGEXP sv + ALIAS: + precomp = 1 PPCODE: - PUSHs(newSVpvn_flags(RX_PRECOMP(sv), RX_PRELEN(sv), SVs_TEMP)); + if (ix) { + PUSHs(newSVpvn_flags(RX_PRECOMP(sv), RX_PRELEN(sv), SVs_TEMP)); + } else { + dXSTARG; + /* FIXME - can we code this method more efficiently? */ + PUSHi(PTR2IV(sv)); + } #endif -- 2.7.4