From a83b92fa8845fe243b594cefd53ec906a9de17a6 Mon Sep 17 00:00:00 2001 From: Zefram Date: Tue, 8 Aug 2017 20:06:11 +0100 Subject: use cv_set_call_checker_flags() where possible Call checkers established by core code were being set through cv_set_call_checker(), so requiring GVs to be created in some cases where they could be avoided. Make all the checkers non-GV-namegv capable, and set them with cv_set_call_checker_flags(). The checkers for Devel::Peek::Dump() and utf8::{unicode_to_native,native_to_unicode}() were already fit to handle non-GV names, so required no changes. The checker for CORE:: subs, ck_entersub_args_core(), was naughtily using the name to decide which sub it was dealing with in some cases, so move that information into the ckobj that was already being used to identify the sub in most cases. It also required reformulation of some error reporting code to use cv_name(). --- ext/Devel-Peek/Peek.pm | 2 +- ext/Devel-Peek/Peek.xs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'ext') diff --git a/ext/Devel-Peek/Peek.pm b/ext/Devel-Peek/Peek.pm index 4ce8b4531b..3d790e763a 100644 --- a/ext/Devel-Peek/Peek.pm +++ b/ext/Devel-Peek/Peek.pm @@ -3,7 +3,7 @@ package Devel::Peek; -$VERSION = '1.26'; +$VERSION = '1.27'; $XS_VERSION = $VERSION; $VERSION = eval $VERSION; diff --git a/ext/Devel-Peek/Peek.xs b/ext/Devel-Peek/Peek.xs index cde3e51dec..8a8c0b96d7 100644 --- a/ext/Devel-Peek/Peek.xs +++ b/ext/Devel-Peek/Peek.xs @@ -444,7 +444,7 @@ BOOT: { CV * const cv = get_cvn_flags("Devel::Peek::Dump", 17, 0); assert(cv); - cv_set_call_checker(cv, S_ck_dump, (SV *)cv); + cv_set_call_checker_flags(cv, S_ck_dump, (SV *)cv, 0); Perl_custom_op_register(aTHX_ S_pp_dump, &my_xop); } -- cgit v1.2.1