TODO: this break backwards compatibility. However, we can't let the HR_SHARED_PTR lose the ownership of the marshaller. What we can do is to alloc a new HR_SHARED_PTR and keep just a pointer to it, and delete this in the destructor function.