Fixed multiple segfaults

This commit is contained in:
Yousef Khadadeh 2026-03-30 18:51:14 +03:00
parent b4c35124c3
commit 2ad5684594
32 changed files with 1035 additions and 1010 deletions

View file

@ -35,6 +35,7 @@ GUIManager::GUIManager()
clayArena = Clay_CreateArenaWithCapacityAndMemory(Clay_MinMemorySize(), malloc(Clay_MinMemorySize()));
clayInstance = Clay_Initialize(clayArena, Clay_Dimensions(1.0f, 1.0f), (Clay_ErrorHandler)clay_error_handler);
Clay_SetMeasureTextFunction(clay_skia_measure_text, this);
setToLayout = true;
}
Clay_Dimensions GUIManager::clay_skia_measure_text(Clay_StringSlice str, Clay_TextElementConfig* config, void* userData) {
@ -291,6 +292,18 @@ void GUIManager::clay_error_handler(Clay_ErrorData errorData) {
Logger::get().log("INFO", "[Clay Error] " + std::string(errorData.errorText.chars));
}
void GUIManager::new_id(const char* id, const std::function<void()>& f) {
push_id(id);
f();
pop_id();
}
void GUIManager::new_id(int64_t id, const std::function<void()>& f) {
push_id(id);
f();
pop_id();
}
void GUIManager::push_id(int64_t id) {
idStack.emplace_back(id);
}