Commit aa1b316f by Wenzel Jakob

adjusted module::add_object signature so that it accepts a py::handle

parent 194d8b99
...@@ -771,13 +771,12 @@ public: ...@@ -771,13 +771,12 @@ public:
// //
// overwrite should almost always be false: attempting to overwrite objects that pybind11 has // overwrite should almost always be false: attempting to overwrite objects that pybind11 has
// established will, in most cases, break things. // established will, in most cases, break things.
PYBIND11_NOINLINE void add_object(const char *name, object &obj, bool overwrite = false) { PYBIND11_NOINLINE void add_object(const char *name, handle obj, bool overwrite = false) {
if (!overwrite && hasattr(*this, name)) if (!overwrite && hasattr(*this, name))
pybind11_fail("Error during initialization: multiple incompatible definitions with name \"" + pybind11_fail("Error during initialization: multiple incompatible definitions with name \"" +
std::string(name) + "\""); std::string(name) + "\"");
obj.inc_ref(); // PyModule_AddObject() steals a reference PyModule_AddObject(ptr(), name, obj.inc_ref().ptr() /* steals a reference */);
PyModule_AddObject(ptr(), name, obj.ptr());
} }
}; };
......
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