Fixes to make safe_ptr work outside of kakoune.
This commit is contained in:
parent
23d7121e76
commit
8a65faf45c
1 changed files with 13 additions and 1 deletions
|
@ -3,7 +3,11 @@
|
||||||
|
|
||||||
// #define SAFE_PTR_TRACK_CALLSTACKS
|
// #define SAFE_PTR_TRACK_CALLSTACKS
|
||||||
|
|
||||||
#include "assert.hh"
|
//King_DuckZ:
|
||||||
|
#include <cassert>
|
||||||
|
#define kak_assert(a) assert(a)
|
||||||
|
|
||||||
|
//#include "assert.hh"
|
||||||
#include "ref_ptr.hh"
|
#include "ref_ptr.hh"
|
||||||
|
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
|
@ -57,6 +61,8 @@ struct SafeCountablePolicy
|
||||||
++sc->m_count;
|
++sc->m_count;
|
||||||
#ifdef SAFE_PTR_TRACK_CALLSTACKS
|
#ifdef SAFE_PTR_TRACK_CALLSTACKS
|
||||||
sc->m_callstacks.emplace_back(ptr);
|
sc->m_callstacks.emplace_back(ptr);
|
||||||
|
#else
|
||||||
|
static_cast<void>(ptr);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,6 +75,8 @@ struct SafeCountablePolicy
|
||||||
[=](const SafeCountable::Callstack& cs) { return cs.ptr == ptr; });
|
[=](const SafeCountable::Callstack& cs) { return cs.ptr == ptr; });
|
||||||
kak_assert(it != sc->m_callstacks.end());
|
kak_assert(it != sc->m_callstacks.end());
|
||||||
sc->m_callstacks.erase(it);
|
sc->m_callstacks.erase(it);
|
||||||
|
#else
|
||||||
|
static_cast<void>(ptr);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,6 +87,10 @@ struct SafeCountablePolicy
|
||||||
[=](const SafeCountable::Callstack& cs) { return cs.ptr == from; });
|
[=](const SafeCountable::Callstack& cs) { return cs.ptr == from; });
|
||||||
kak_assert(it != sc->m_callstacks.end());
|
kak_assert(it != sc->m_callstacks.end());
|
||||||
it->ptr = to;
|
it->ptr = to;
|
||||||
|
#else
|
||||||
|
static_cast<void>(sc);
|
||||||
|
static_cast<void>(from);
|
||||||
|
static_cast<void>(to);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Reference in a new issue