From e3e61c1642d3bfc5a514dc96aba36ad9b89406a9 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 4 Aug 1995 04:14:47 +0000 Subject: empty kw dict is ok for builtins --- Python/ceval.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Python/ceval.c b/Python/ceval.c index a0431aa..d725d35 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -2281,6 +2281,11 @@ PyEval_CallObjectWithKeywords(func, arg, kw) else INCREF(arg); + if (kw != NULL && !is_dictobject(kw)) { + err_setstr(TypeError, "keyword list must be a dictionary"); + return NULL; + } + if (call = func->ob_type->tp_call) result = (*call)(func, arg, kw); else if (is_instancemethodobject(func) || is_funcobject(func)) @@ -2316,7 +2321,7 @@ call_builtin(func, arg, kw) } if (flags & METH_KEYWORDS) return (*(PyCFunctionWithKeywords)meth)(self, arg, kw); - if (kw != NULL) { + if (kw != NULL && getmappingsize(kw) != 0) { err_setstr(TypeError, "this function takes no keyword arguments"); return NULL; -- cgit v0.12