From 1c23e2bdad29ff1daf6392412fffae9341795834 Mon Sep 17 00:00:00 2001 From: David Mitchell Date: Mon, 4 Jan 2016 09:16:52 +0000 Subject: make gimme consistently U8 The value of gimme stored in the context stack is U8. Make all other uses in the main core consistent with this. My primary motivation on this was that the new function cx_pushblock(), which I gave a 'U8 gimme' parameter, was generating warnings where callers were passing I32 gimme vars to it. Rather than play whack-a-mole, it seemed simpler to just uniformly use U8 everywhere. Porting/bench.pl shows a consistent reduction of about 2 instructions on the loop and sub benchmarks, so this change isn't harming performance. --- doop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doop.c') diff --git a/doop.c b/doop.c index dbf26d62a1..892cd07f4e 100644 --- a/doop.c +++ b/doop.c @@ -1238,7 +1238,7 @@ Perl_do_kv(pTHX) HV * const keys = MUTABLE_HV(POPs); HE *entry; SSize_t extend_size; - const I32 gimme = GIMME_V; + const U8 gimme = GIMME_V; const I32 dokv = (PL_op->op_type == OP_RV2HV || PL_op->op_type == OP_PADHV); /* op_type is OP_RKEYS/OP_RVALUES if pp_rkeys delegated to here */ const I32 dokeys = dokv || (PL_op->op_type == OP_KEYS); -- cgit v1.2.1