From ca45041049003d55fc030a254d548edd86b3d54c Mon Sep 17 00:00:00 2001 From: Joss Moore Date: Mon, 28 Oct 2024 04:54:42 -0700 Subject: [PATCH] MjSpecs.copy should return an MjSpec rather than a raw::MjSpec* raw::MjSpec* is not a good python object. PiperOrigin-RevId: 690564198 Change-Id: I3a5dd525a3a9acc67bb0e598dd508572dc4c687f --- python/mujoco/specs.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/python/mujoco/specs.cc b/python/mujoco/specs.cc index 96bb7baf..fe7e22fb 100644 --- a/python/mujoco/specs.cc +++ b/python/mujoco/specs.cc @@ -323,10 +323,9 @@ PYBIND11_MODULE(_specs, m) { return mjmodel_mjdata_from_spec_ptr(reinterpret_cast(self.ptr), m, d); }); - mjSpec.def( - "copy", - [](const MjSpec& self) -> raw::MjSpec* { return mj_copySpec(self.ptr); }, - py::return_value_policy::reference_internal); + mjSpec.def("copy", [](const MjSpec& self) -> MjSpec { + return MjSpec(mj_copySpec(self.ptr)); + }); mjSpec.def_property_readonly( "worldbody", [](MjSpec& self) -> raw::MjsBody* {