diff options
author | David Tolnay <dtolnay@gmail.com> | 2020-12-28 18:02:25 -0800 |
---|---|---|
committer | David Tolnay <dtolnay@gmail.com> | 2020-12-28 18:09:55 -0800 |
commit | 7a48785a8ebb3fad0f4d13e7d2db3157e0c60762 (patch) | |
tree | 3b42995b67ace71b2ba496b698f35c3f5d237901 /src/cxx.cc | |
parent | 85b6bc4a39a68c5b064807e89f1933d898e0f5b6 (diff) | |
download | cxx-7a48785a8ebb3fad0f4d13e7d2db3157e0c60762.tar.gz |
Add upgrade conversion from WeakPtr to SharedPtr
Diffstat (limited to 'src/cxx.cc')
-rw-r--r-- | src/cxx.cc | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -525,6 +525,11 @@ static_assert(sizeof(std::string) <= kMaxExpectedWordsInString * sizeof(void *), std::weak_ptr<CXX_TYPE> *weak) noexcept { \ new (weak) std::weak_ptr<CXX_TYPE>(shared); \ } \ + void cxxbridge1$std$weak_ptr$##RUST_TYPE##$upgrade( \ + const std::weak_ptr<CXX_TYPE> &weak, \ + std::shared_ptr<CXX_TYPE> *shared) noexcept { \ + new (shared) std::shared_ptr<CXX_TYPE>(weak.lock()); \ + } \ void cxxbridge1$std$weak_ptr$##RUST_TYPE##$drop( \ const std::weak_ptr<CXX_TYPE> *self) noexcept { \ self->~weak_ptr(); \ |