Skip to content

Commit 3994ece

Browse files
committed
External pointer premature release
r-lib/cpp11#423 This reverts commit 1b698e533ea7c7003cb610a5f5f7e5a47966c59d.
1 parent a14419a commit 3994ece

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

inst/include/cpp11/external_pointer.hpp

+8-2
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,15 @@ class external_pointer {
6969
data_ = safe[Rf_shallow_duplicate](rhs.data_);
7070
}
7171

72-
external_pointer(external_pointer&& rhs) { reset(rhs.release()); }
72+
external_pointer(external_pointer&& rhs) {
73+
data_ = rhs.data_;
74+
rhs.data_ = R_NilValue;
75+
}
7376

74-
external_pointer& operator=(external_pointer&& rhs) noexcept { reset(rhs.release()); }
77+
external_pointer& operator=(external_pointer&& rhs) noexcept {
78+
data_ = rhs.data_;
79+
rhs.data_ = R_NilValue;
80+
}
7581

7682
external_pointer& operator=(std::nullptr_t) noexcept { reset(); };
7783

0 commit comments

Comments
 (0)