From f7f6aa20ab1f1ef4fd720d2f2a0aedc8a828c473 Mon Sep 17 00:00:00 2001 From: light7734 Date: Thu, 9 Oct 2025 20:18:20 +0330 Subject: [PATCH] wip --- modules/surface/private/linux/system.cpp | 20 ++++++++++++++------ modules/surface/private/system.test.cpp | 1 - modules/surface/public/system.hpp | 9 ++++++--- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/modules/surface/private/linux/system.cpp b/modules/surface/private/linux/system.cpp index e1b44b2..120cc15 100644 --- a/modules/surface/private/linux/system.cpp +++ b/modules/surface/private/linux/system.cpp @@ -14,11 +14,13 @@ namespace lt::surface { template -int XEventTypeEquals(Display *, XEvent *event, XPointer winptr) +auto XEventTypeEquals(Display *display, XEvent *event, char *winptr) -> int { + std::ignore = display; return ( event->type == EventType - && *(reinterpret_cast(winptr)) == reinterpret_cast(event)->window + && *(std::bit_cast(winptr)) + == std::bit_cast(event)->window ); } @@ -100,7 +102,10 @@ void System::on_unregister() { } -void System::create_surface_component(ecs::EntityId entity, SurfaceComponent::CreateInfo info) +__attribute__((no_sanitize("memory"))) void System::create_surface_component( + ecs::EntityId entity, + SurfaceComponent::CreateInfo info +) try { auto &component = m_registry->add(entity, info); @@ -331,7 +336,10 @@ void System::modify_title(SurfaceComponent &surface, const ModifyTitleRequest &r XStoreName(display, window, request.title.c_str()); } -void System::modify_resolution(SurfaceComponent &surface, const ModifyResolutionRequest &request) +__attribute__((no_sanitize("memory"))) void System::modify_resolution( + SurfaceComponent &surface, + const ModifyResolutionRequest &request +) { // surface.m_resolution = request.resolution; @@ -340,7 +348,7 @@ void System::modify_resolution(SurfaceComponent &surface, const ModifyResolution // XResizeWindow(display, window, width, height); // get baseline serial number for X requests generated from XResizeWindow - uint64_t serial = NextRequest(display); + auto serial = NextRequest(display); // request a new window size from the X server XResizeWindow(display, window, static_cast(width), static_cast(height)); @@ -396,7 +404,7 @@ void System::modify_position(SurfaceComponent &surface, const ModifyPositionRequ const auto &[x, y] = request.position; // get baseline serial number for X requests generated from XResizeWindow - uint64_t serial = NextRequest(display); + auto serial = NextRequest(display); XMoveWindow(display, window, static_cast(x), static_cast(y)); // flush output queue and wait for X server to processes the request diff --git a/modules/surface/private/system.test.cpp b/modules/surface/private/system.test.cpp index fe9adb4..3ea6643 100644 --- a/modules/surface/private/system.test.cpp +++ b/modules/surface/private/system.test.cpp @@ -16,7 +16,6 @@ using test::expect_eq; using test::expect_ne; using test::expect_not_nullptr; using test::expect_throw; -using test::expect_true; using test::Suite; [[nodiscard]] auto tick_info() -> app::TickInfo diff --git a/modules/surface/public/system.hpp b/modules/surface/public/system.hpp index 24e36e9..6993d49 100644 --- a/modules/surface/public/system.hpp +++ b/modules/surface/public/system.hpp @@ -27,7 +27,10 @@ public: void on_unregister() override; - void create_surface_component(ecs::EntityId entity, SurfaceComponent::CreateInfo info); + __attribute__((no_sanitize("memory"))) void create_surface_component( + ecs::EntityId entity, + SurfaceComponent::CreateInfo info + ); void tick(app::TickInfo tick) override; @@ -45,12 +48,12 @@ private: void modify_title(struct SurfaceComponent &surface, const struct ModifyTitleRequest &request); - void modify_resolution( + __attribute__((no_sanitize("memory"))) void modify_resolution( struct SurfaceComponent &surface, const struct ModifyResolutionRequest &request ); - void modify_position( + __attribute__((no_sanitize("memory"))) void modify_position( struct SurfaceComponent &surface, const struct ModifyPositionRequest &request );