From 88a117c706328e8ccead5280490a447ab8a28383 Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Thu, 16 Feb 2017 18:07:13 +0300 Subject: Remove usage of std::shared_ptr because it is not supported on Android NDK, yet (even C++11 usagae is enabled!) --- src/adlmidi_private.hpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src/adlmidi_private.hpp') diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index 4f89cae..2d6ecae 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -68,6 +68,33 @@ extern std::string ADLMIDI_ErrorString; +/* + Smart pointer for C heaps, created with malloc() call. + FAQ: Why not std::shared_ptr? Because of Android NDK now doesn't supports it +*/ +template +class AdlMIDI_CPtr +{ + PTR* m_p; +public: + AdlMIDI_CPtr() : m_p(NULL) {} + ~AdlMIDI_CPtr() + { + reset(NULL); + } + + void reset(PTR *p = NULL) + { + if(m_p) + free(m_p); + m_p = p; + } + + PTR* get() { return m_p;} + PTR& operator*() { return *m_p; } + PTR* operator->() { return m_p; } +}; + class MIDIplay; struct OPL3 { -- cgit v1.2.3