Converting C assert to pybind11_fail (to play safe).

This commit is contained in:
Ralf W. Grosse-Kunstleve 2021-06-29 15:49:33 -07:00 committed by Ralf W. Grosse-Kunstleve
parent 5af253d66c
commit f128f1b6db
1 changed files with 4 additions and 3 deletions

View File

@ -18,7 +18,6 @@
#include "type_caster_base.h"
#include "typeid.h"
#include <cassert>
#include <cstddef>
#include <memory>
#include <new>
@ -419,8 +418,10 @@ struct smart_holder_type_caster_load {
if (sptsls_ptr != nullptr) {
// This code is reachable only if there are multiple registered_instances for the
// same pointee.
assert(reinterpret_cast<PyObject *>(load_impl.loaded_v_h.inst)
!= sptsls_ptr->self);
if (reinterpret_cast<PyObject *>(load_impl.loaded_v_h.inst) == sptsls_ptr->self) {
pybind11_fail("smart_holder_type_casters loaded_as_shared_ptr failure: "
"load_impl.loaded_v_h.inst == sptsls_ptr->self");
}
return std::shared_ptr<T>(
type_raw_ptr,
shared_ptr_trampoline_self_life_support(load_impl.loaded_v_h.inst));