diff --git a/strings/base_implements.h b/strings/base_implements.h index 80a69faa7..e545b2a57 100644 --- a/strings/base_implements.h +++ b/strings/base_implements.h @@ -1190,8 +1190,7 @@ namespace winrt::impl return decode_weak_ref(count_or_pointer)->get_source(); } - com_ptr weak_ref; - *weak_ref.put() = new (std::nothrow) weak_ref_t(get_unknown(), static_cast(count_or_pointer)); + com_ptr weak_ref(new (std::nothrow) weak_ref_t(get_unknown(), static_cast(count_or_pointer)), take_ownership_from_abi); if (!weak_ref) {