From f406488a2c4125be2564608342639eedea2840e3 Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Sat, 13 May 2023 15:33:29 +0800 Subject: [PATCH] ... --- src/cffi.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/cffi.h b/src/cffi.h index 31761b87..3fe819e1 100644 --- a/src/cffi.h +++ b/src/cffi.h @@ -116,6 +116,12 @@ std::enable_if_t && !std::is_pointer_v, PyObject*> py_var(VM /*****************************************************************/ struct NativeProxyFuncCBase { virtual PyObject* operator()(VM* vm, ArgsView args) = 0; + + static void check_args_size(VM* vm, ArgsView args, int n){ + if (args.size() != n){ + vm->TypeError("expected " + std::to_string(n) + " arguments, but got " + std::to_string(args.size())); + } + } }; template @@ -126,9 +132,7 @@ struct NativeProxyFuncC final: NativeProxyFuncCBase { NativeProxyFuncC(_Fp func) : func(func) {} PyObject* operator()(VM* vm, ArgsView args) override { - if (args.size() != N){ - vm->TypeError("expected " + std::to_string(N) + " arguments, but got " + std::to_string(args.size())); - } + check_args_size(vm, args, N); return call(vm, args, std::make_index_sequence()); }