unpacking_collector: allow nullptr-valued kwargs argument

This fixes an issue that can arise when forwarding (*args, **kwargs)
captured from a pybind11-bound function call to another Python function.
When the initial function call includes no keyword arguments, the
py::kwargs field is set to nullptr and causes a crash later on.
This commit is contained in:
Wenzel Jakob 2016-10-08 15:30:00 +02:00
parent ba7678016c
commit e71ab8f455

View File

@ -1218,9 +1218,8 @@ private:
}
void process(list &args_list, detail::args_proxy ap) {
for (const auto &a : ap) {
for (const auto &a : ap)
args_list.append(a);
}
}
void process(list &/*args_list*/, arg_v a) {
@ -1242,6 +1241,8 @@ private:
}
void process(list &/*args_list*/, detail::kwargs_proxy kp) {
if (!kp)
return;
for (const auto &k : dict(kp, true)) {
if (m_kwargs.contains(k.first)) {
#if defined(NDEBUG)