fix crash when None is passed to enum::operator==

This commit is contained in:
Wenzel Jakob 2016-05-01 12:45:38 +02:00
parent 9059bd8134
commit 6fb48490ef

View File

@ -409,7 +409,6 @@ protected:
} }
} }
} }
if (kwargs_consumed == nkwargs) if (kwargs_consumed == nkwargs)
result = it->impl(it, args_, parent); result = it->impl(it, args_, parent);
@ -937,10 +936,11 @@ public:
((it == entries->end()) ? std::string("???") ((it == entries->end()) ? std::string("???")
: std::string(it->second)); : std::string(it->second));
}); });
this->def("__init__", [](Type& value, int i) { value = (Type) i; }); this->def("__init__", [](Type& value, int i) { value = (Type)i; });
this->def("__init__", [](Type& value, int i) { new (&value) Type((Type) i); });
this->def("__int__", [](Type value) { return (int) value; }); this->def("__int__", [](Type value) { return (int) value; });
this->def("__eq__", [](const Type &value, Type value2) { return value == value2; }); this->def("__eq__", [](const Type &value, Type *value2) { return value2 && value == *value2; });
this->def("__ne__", [](const Type &value, Type value2) { return value != value2; }); this->def("__ne__", [](const Type &value, Type *value2) { return !value2 || value != *value2; });
this->def("__hash__", [](const Type &value) { return (int) value; }); this->def("__hash__", [](const Type &value) { return (int) value; });
m_entries = entries; m_entries = entries;
} }