Skip to content

Commit fada0cb

Browse files
committed
Proper bug fix
1 parent ab9693b commit fada0cb

File tree

1 file changed

+2
-4
lines changed

1 file changed

+2
-4
lines changed

include/pybind11/detail/type_caster_base.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -657,9 +657,8 @@ handle smart_holder_from_shared_ptr(const std::shared_ptr<T> &src,
657657
return none().release();
658658
}
659659

660-
auto src_raw_ptr = src.get();
660+
void *src_raw_void_ptr = const_cast<void *>(st.first);
661661
assert(st.second != nullptr);
662-
void *src_raw_void_ptr = static_cast<void *>(src_raw_ptr);
663662
const detail::type_info *tinfo = st.second;
664663
if (handle existing_inst = find_registered_python_instance(src_raw_void_ptr, tinfo)) {
665664
// PYBIND11:REMINDER: MISSING: Enforcement of consistency with existing smart_holder.
@@ -673,8 +672,7 @@ handle smart_holder_from_shared_ptr(const std::shared_ptr<T> &src,
673672
void *&valueptr = values_and_holders(inst_raw_ptr).begin()->value_ptr();
674673
valueptr = src_raw_void_ptr;
675674

676-
auto smhldr
677-
= smart_holder::from_shared_ptr(std::shared_ptr<void>(src, const_cast<void *>(st.first)));
675+
auto smhldr = smart_holder::from_shared_ptr(std::shared_ptr<void>(src, src_raw_void_ptr));
678676
tinfo->init_instance(inst_raw_ptr, static_cast<const void *>(&smhldr));
679677

680678
if (policy == return_value_policy::reference_internal) {

0 commit comments

Comments
 (0)