|
@@ -61,7 +61,7 @@ Index of this file:
|
|
|
// Version
|
|
|
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals. Work in progress versions typically starts at XYY99 then bounce up to XYY00, XYY01 etc. when release tagging happens)
|
|
|
#define IMGUI_VERSION "1.84 WIP"
|
|
|
-#define IMGUI_VERSION_NUM 18306
|
|
|
+#define IMGUI_VERSION_NUM 18307
|
|
|
#define IMGUI_CHECKVERSION() ImGui::DebugCheckVersionAndDataLayout(IMGUI_VERSION, sizeof(ImGuiIO), sizeof(ImGuiStyle), sizeof(ImVec2), sizeof(ImVec4), sizeof(ImDrawVert), sizeof(ImDrawIdx))
|
|
|
#define IMGUI_HAS_TABLE
|
|
|
|
|
@@ -1667,7 +1667,11 @@ struct ImVector
|
|
|
inline ImVector() { Size = Capacity = 0; Data = NULL; }
|
|
|
inline ImVector(const ImVector<T>& src) { Size = Capacity = 0; Data = NULL; operator=(src); }
|
|
|
inline ImVector<T>& operator=(const ImVector<T>& src) { clear(); resize(src.Size); memcpy(Data, src.Data, (size_t)Size * sizeof(T)); return *this; }
|
|
|
- inline ~ImVector() { if (Data) IM_FREE(Data); }
|
|
|
+ inline ~ImVector() { if (Data) IM_FREE(Data); } // Important: does not destruct anything
|
|
|
+
|
|
|
+ inline void clear() { if (Data) { Size = Capacity = 0; IM_FREE(Data); Data = NULL; } } // Important: does not destruct anything
|
|
|
+ inline void clear_delete() { for (int n = 0; n < Size; n++) IM_DELETE(Data[n]); clear(); } // Important: never called automatically! always explicit.
|
|
|
+ inline void clear_destruct() { for (int n = 0; n < Size; n++) Data[n].~T(); clear(); } // Important: never called automatically! always explicit.
|
|
|
|
|
|
inline bool empty() const { return Size == 0; }
|
|
|
inline int size() const { return Size; }
|
|
@@ -1677,7 +1681,6 @@ struct ImVector
|
|
|
inline T& operator[](int i) { IM_ASSERT(i >= 0 && i < Size); return Data[i]; }
|
|
|
inline const T& operator[](int i) const { IM_ASSERT(i >= 0 && i < Size); return Data[i]; }
|
|
|
|
|
|
- inline void clear() { if (Data) { Size = Capacity = 0; IM_FREE(Data); Data = NULL; } }
|
|
|
inline T* begin() { return Data; }
|
|
|
inline const T* begin() const { return Data; }
|
|
|
inline T* end() { return Data + Size; }
|