From a6ad50ab3534681c41d6d8b2d6d822b9d776f140 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kirill=20M=C3=BCller?= Date: Sat, 7 Dec 2024 20:38:22 +0100 Subject: [PATCH 1/2] feat: Add `prot` argument to `external_pointer()` constructor --- inst/include/cpp11/external_pointer.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inst/include/cpp11/external_pointer.hpp b/inst/include/cpp11/external_pointer.hpp index a62134ec..f4e07af2 100644 --- a/inst/include/cpp11/external_pointer.hpp +++ b/inst/include/cpp11/external_pointer.hpp @@ -55,8 +55,8 @@ class external_pointer { external_pointer(SEXP data) : data_(valid_type(data)) {} - external_pointer(pointer p, bool use_deleter = true, bool finalize_on_exit = true) - : data_(safe[R_MakeExternalPtr]((void*)p, R_NilValue, R_NilValue)) { + external_pointer(pointer p, bool use_deleter = true, bool finalize_on_exit = true, SEXP prot = R_NilValue) + : data_(safe[R_MakeExternalPtr]((void*)p, R_NilValue, prot)) { if (use_deleter) { R_RegisterCFinalizerEx(data_, r_deleter, static_cast(finalize_on_exit)); } From cd2f5b6166ac924231d667acdddb5256164ad0ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kirill=20M=C3=BCller?= Date: Sat, 7 Dec 2024 20:39:59 +0100 Subject: [PATCH 2/2] Format --- inst/include/cpp11/external_pointer.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/inst/include/cpp11/external_pointer.hpp b/inst/include/cpp11/external_pointer.hpp index f4e07af2..fed13d89 100644 --- a/inst/include/cpp11/external_pointer.hpp +++ b/inst/include/cpp11/external_pointer.hpp @@ -55,7 +55,8 @@ class external_pointer { external_pointer(SEXP data) : data_(valid_type(data)) {} - external_pointer(pointer p, bool use_deleter = true, bool finalize_on_exit = true, SEXP prot = R_NilValue) + external_pointer(pointer p, bool use_deleter = true, bool finalize_on_exit = true, + SEXP prot = R_NilValue) : data_(safe[R_MakeExternalPtr]((void*)p, R_NilValue, prot)) { if (use_deleter) { R_RegisterCFinalizerEx(data_, r_deleter, static_cast(finalize_on_exit));