Skip to content

Commit ed09b2b

Browse files
committed
minor tweak to Eigen::Matrix type caster RVP handling
1 parent 6f0c3fe commit ed09b2b

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

include/nanobind/eigen/dense.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -197,16 +197,15 @@ struct type_caster<T, enable_if_t<is_eigen_plain_v<T> &&
197197
T *temp = new T(std::move(v));
198198
owner = capsule(temp, [](void *p) noexcept { delete (T *) p; });
199199
ptr = temp->data();
200+
policy = rv_policy::reference;
200201
} else if (policy == rv_policy::reference_internal) {
201202
owner = borrow(cleanup->self());
203+
policy = rv_policy::reference;
202204
}
203205

204-
rv_policy array_rv_policy =
205-
policy == rv_policy::move ? rv_policy::reference : policy;
206-
207206
object o = steal(NDArrayCaster::from_cpp(
208207
NDArray(ptr, ndim_v<T>, shape, owner, strides),
209-
array_rv_policy, cleanup));
208+
policy, cleanup));
210209

211210
return o.release();
212211
}

0 commit comments

Comments
 (0)