[*] account for null non-nullptrs in Shared class of apis
This commit is contained in:
parent
cb3b1a582b
commit
c3e01d31f8
@ -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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user