From 9e4b587dca809519106f004df09f5aa01b721e9a Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 23 Jul 2013 03:04:36 -0400 Subject: don't return a coderef if there was a parse error it won't be a valid coderef, you'll just get an error if you try to call it --- Keyword.xs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'Keyword.xs') diff --git a/Keyword.xs b/Keyword.xs index 7f70222..b52f98c 100644 --- a/Keyword.xs +++ b/Keyword.xs @@ -22,12 +22,17 @@ static SV *parser_fn(OP *(fn)(pTHX_ U32), bool named) { I32 floor; + OP *parsed; CV *code; REENTER_PARSER; floor = start_subparse(0, named ? 0 : CVf_ANON); - code = newATTRSUB(floor, NULL, NULL, NULL, fn(aTHX_ 0)); + parsed = fn(aTHX_ 0); + if (PL_parser->error_count) { + return newSV(0); + } + code = newATTRSUB(floor, NULL, NULL, NULL, parsed); LEAVE_PARSER; -- cgit v1.2.3-54-g00ecf