Files
botw/src/KingSystem/Utils/SafeDelete.h
T
2020-10-22 19:01:18 +02:00

38 lines
676 B
C++

#pragma once
#include <thread/seadThread.h>
namespace ksys::util {
template <typename T>
inline void safeDelete(T*& pointer) {
if (pointer)
delete pointer;
pointer = nullptr;
}
template <typename T>
inline void safeDeleteArray(T*& pointer) {
if (pointer)
delete[] pointer;
pointer = nullptr;
}
template <typename T>
inline void safeDeleteThread(T*& thread, bool is_jam = false) {
if (!thread)
return;
thread->quitAndWaitDoneSingleThread(is_jam);
safeDelete(thread);
}
inline void safeDeleteHeap(sead::Heap*& heap) {
if (heap) {
heap->destroy();
heap = nullptr;
}
}
} // namespace ksys::util