diff options
| author | Aetias <144526980+AetiasHax@users.noreply.github.com> | 2025-02-03 23:53:59 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-03 23:53:59 +0100 |
| commit | 66fa3f0623820bc4fb099289a398453cd28e4ed9 (patch) | |
| tree | 49de846e0516c9490ea31fd14a867cc14253f7e4 /libs/cpp/include | |
| parent | 48bbd8bb7f008ac913cabb6f7faf4a47ad86878b (diff) | |
| parent | 2bd1bbd10b1ba5a595372a3313e80e4274a4e912 (diff) | |
Merge pull request #59 from AetiasHax/ghidra-symbols
Import documentation from Ghidra server
Diffstat (limited to 'libs/cpp/include')
| -rw-r--r-- | libs/cpp/include/cxxabi.h | 11 | ||||
| -rw-r--r-- | libs/cpp/include/vector | 36 |
2 files changed, 44 insertions, 3 deletions
diff --git a/libs/cpp/include/cxxabi.h b/libs/cpp/include/cxxabi.h new file mode 100644 index 00000000..be49baba --- /dev/null +++ b/libs/cpp/include/cxxabi.h @@ -0,0 +1,11 @@ +#pragma once + +#include <stddef.h> + +namespace __cxxabiv1 { + extern "C" { + typedef void (*__cxa_cdtor_type)(void *); + + void __cxa_vec_cleanup(void *array, size_t count, size_t elementSize, __cxa_cdtor_type dtor); + } +} // namespace __cxxabiv1 diff --git a/libs/cpp/include/vector b/libs/cpp/include/vector index 7d78e50c..37e7a4d8 100644 --- a/libs/cpp/include/vector +++ b/libs/cpp/include/vector @@ -1,10 +1,40 @@ #pragma once +#include <string.h> + namespace std { template <class T> class vector { public: - T *elements; - int size; - int capacity; + T *mElements; + int mSize; + int mCapacity; + + ~vector() { + if (mElements != NULL) { + decrease_size(mSize); + delete mElements; + } + } + + void push_back(T &value) { + get_new_capacity(1); + append_back(1, &value); + } + + T *erase(T *first, T *last) { + if (first != last) { + int bytesToMove = (int) mElements + mSize * sizeof(T) - (int) last; + memmove(first, last, bytesToMove); + mSize -= (int) last - (int) first; + } + return first; + } + + private: + void decrease_size(int amount); + + int get_new_capacity(int growth); + + void append_back(int length, T *items); }; } // namespace std |
