Return orig_emit from S_regclass() when ret_invlist is true.
authorNicholas Clark <nick@ccl4.org>
Fri, 18 Jan 2013 15:30:39 +0000 (16:30 +0100)
committerNicholas Clark <nick@ccl4.org>
Tue, 19 Mar 2013 10:53:19 +0000 (11:53 +0100)
The return value isn't used (yet). Previously the code was returning END,
which is a macro for the regnode number for "End of program" which happens to
be 0. It happens that 0 is valid C for a NULL pointer, but using it in this
way makes the intent unclear. Not only is orig_emit a valid type, it's
semantically the correct thing to return, as it's most recently added node.

regcomp.c

index 6c677f5..160a337 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -13518,7 +13518,7 @@ parseit:
         else {
             RExC_emit = orig_emit;
         }
-        return END;
+        return orig_emit;
     }
 
     /* If we didn't do folding, it's because some information isn't available