Commit 6fb48490 by Wenzel Jakob

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

parent 9059bd81
...@@ -409,7 +409,6 @@ protected: ...@@ -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: ...@@ -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;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment