Add upgrade conversion from WeakPtr to SharedPtr
diff --git a/macro/src/expand.rs b/macro/src/expand.rs
index 690dbf9..e53e5b6 100644
--- a/macro/src/expand.rs
+++ b/macro/src/expand.rs
@@ -1243,6 +1243,7 @@
let link_null = format!("{}null", prefix);
let link_clone = format!("{}clone", prefix);
let link_downgrade = format!("{}downgrade", prefix);
+ let link_upgrade = format!("{}upgrade", prefix);
let link_drop = format!("{}drop", prefix);
let begin_span =
@@ -1274,6 +1275,13 @@
}
__downgrade(shared, weak);
}
+ unsafe fn __upgrade(weak: *const ::std::ffi::c_void, shared: *mut ::std::ffi::c_void) {
+ extern "C" {
+ #[link_name = #link_upgrade]
+ fn __upgrade(weak: *const ::std::ffi::c_void, shared: *mut ::std::ffi::c_void);
+ }
+ __upgrade(weak, shared);
+ }
unsafe fn __drop(this: *mut ::std::ffi::c_void) {
extern "C" {
#[link_name = #link_drop]