Skip to content

Commit 68b719f

Browse files
authored
Add missing error handling for PyModule_FromSlotsAndSpec (#5915)
1 parent c1f6d4e commit 68b719f

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/impl_/pymodule.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,11 +211,14 @@ impl ModuleDef {
211211
self.module
212212
.get_or_try_init(py, || {
213213
let slots = self.get_slots();
214-
let module = unsafe { ffi::PyModule_FromSlotsAndSpec(slots, spec.as_ptr()) };
215-
if unsafe { ffi::PyModule_SetDocString(module, doc.as_ptr()) } != 0 {
214+
let module = unsafe {
215+
ffi::PyModule_FromSlotsAndSpec(slots, spec.as_ptr())
216+
.assume_owned_or_err(py)?
217+
}
218+
.cast_into()?;
219+
if unsafe { ffi::PyModule_SetDocString(module.as_ptr(), doc.as_ptr()) } != 0 {
216220
return Err(PyErr::fetch(py));
217221
}
218-
let module = unsafe { module.assume_owned_or_err(py)? }.cast_into()?;
219222
if unsafe { ffi::PyModule_Exec(module.as_ptr()) } != 0 {
220223
return Err(PyErr::fetch(py));
221224
}

0 commit comments

Comments
 (0)