[*] account for null non-nullptrs in Shared class of apis

This commit is contained in:
Reece Wilson 2022-06-24 22:31:22 +01:00
parent cb3b1a582b
commit c3e01d31f8

View File

@ -60,22 +60,25 @@
{ \ { \
void operator()(type *t) \ void operator()(type *t) \
{ \ { \
if (!t) return; \
name ## Release(t); \ name ## Release(t); \
} \ } \
}; \ }; \
\ \
using name ## Unique_t = AURORA_RUNTIME_AU_UNIQUE_PTR<type, CppDeleter ## name>; \ using name ## Unique_t = AURORA_RUNTIME_AU_UNIQUE_PTR<type, CppDeleter ## name>; \
template <class ... T> \ template <class ... T> \
name ## Unique_t name ## Unique(T... args) \ name ## Unique_t name ## Unique(T... args) \
{ \ { \
return name ## Unique_t(name ## New(args...)); \ return name ## Unique_t(name ## New(args...)); \
} \ } \
\ \
using name ## Shared_t = AuSPtr<type>; \ using name ## Shared_t = AuSPtr<type>; \
template <class ... T> \ template <class ... T> \
name ## Shared_t name ## Shared(T... args) \ name ## Shared_t name ## Shared(T... args) \
{ \ { \
return name ## Shared_t(name ## New(args...), name ## Release); \ auto ptr = name ## New(args...); \
if (!ptr) return {}; \
return name ## Shared_t(ptr, name ## Release); \
} }
#endif #endif