about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2025-02-25 11:46:37 +0100
committerptitSeb <sebastien.chev@gmail.com>2025-02-25 11:46:37 +0100
commit48f51bd5fef5b9b6ea5ad086cfd44a07c5441d8a (patch)
tree699fcdf3f7c0f4572f0b92c35d32742cf5c52770 /src
parent940317949a4f6bf75a934840b8a15b41d25d9e1d (diff)
downloadbox64-48f51bd5fef5b9b6ea5ad086cfd44a07c5441d8a.tar.gz
box64-48f51bd5fef5b9b6ea5ad086cfd44a07c5441d8a.zip
[BOX32][WRAPPER] Use a temp xcb when converting an unknown xcb_connection instead of adding it
Diffstat (limited to 'src')
-rw-r--r--src/libtools/my_x11_conv.c2
-rw-r--r--src/libtools/myalignxcb32.c13
2 files changed, 13 insertions, 2 deletions
diff --git a/src/libtools/my_x11_conv.c b/src/libtools/my_x11_conv.c
index 8978f4c9..eb1dadbd 100644
--- a/src/libtools/my_x11_conv.c
+++ b/src/libtools/my_x11_conv.c
@@ -33,7 +33,7 @@ void* getDisplay(void* d)
         if(((&my32_Displays_32[i])==d) || (my32_Displays_64[i]==d)) {
             return my32_Displays_64[i];
         }
-        printf_log(LOG_INFO, "BOX32: Warning, 32bits Display %p not found\n", d);
+    printf_log(LOG_INFO, "BOX32: Warning, 32bits Display %p not found\n", d);
     return d;
 }
 
diff --git a/src/libtools/myalignxcb32.c b/src/libtools/myalignxcb32.c
index b9f58d0e..8b539f7d 100644
--- a/src/libtools/myalignxcb32.c
+++ b/src/libtools/myalignxcb32.c
@@ -73,6 +73,10 @@ typedef struct my_xcb_connection_32_s {
 #define NXCB 16
 static my_xcb_connection_t* my_xcb_connects[NXCB] = {0};
 static my_xcb_connection_32_t i386_xcb_connects[NXCB] = {0};
+static my_xcb_connection_t* tmp_xcb_connect = NULL;
+static my_xcb_connection_32_t i386_tmp_xcb_connect = {0};
+
+void* temp_xcb_connection32(void* src);
 
 void* align_xcb_connection32(void* src)
 {
@@ -85,7 +89,7 @@ void* align_xcb_connection32(void* src)
             dest = my_xcb_connects[i];
     #if 1
     if(!dest)
-        dest = add_xcb_connection32(src);
+        dest = temp_xcb_connection32(src);
     #else
     if(!dest) {
         printf_log(LOG_NONE, "Error, xcb_connect %p not found\n", src);
@@ -194,6 +198,13 @@ void* add_xcb_connection32(void* src)
     return src;
 }
 
+void* temp_xcb_connection32(void* src)
+{
+    tmp_xcb_connect = src;
+    unalign_xcb_connection32(src, &i386_tmp_xcb_connect);
+    return &i386_tmp_xcb_connect;
+}
+
 void del_xcb_connection32(void* src)
 {
     if(!src)