ui/common/document.c

changeset 110
c00e968d018b
parent 108
77254bd6dccb
--- a/ui/common/document.c	Sun Aug 24 15:24:16 2025 +0200
+++ b/ui/common/document.c	Sat Oct 04 14:52:59 2025 +0200
@@ -36,22 +36,16 @@
 #include <cx/mempool.h>
 
 
-static CxMap *documents;
 
-void uic_docmgr_init() {
-    if (!documents) {
-        documents = cxHashMapCreate(cxDefaultAllocator, CX_STORE_POINTERS, 32);
-    }
-}
 
 void* ui_document_new(size_t size) {
     CxMempool *mp = cxMempoolCreateSimple(256);
     const CxAllocator *a = mp->allocator;
     UiContext *ctx = uic_context(NULL, mp);
     
-    void *document = cxCalloc(a, size, 1);
-    cxMapPut(documents, cx_hash_key(&document, sizeof(void*)), ctx);
-    return document;
+    UiDoc *document = cxCalloc(a, sizeof(UiDoc) + size, 1);
+    document->ctx = ctx;
+    return &document->doc;
 }
 
 void ui_document_destroy(void *doc) {
@@ -74,7 +68,9 @@
 
 UiContext* ui_document_context(void *doc) {
     if(doc) {
-        return cxMapGet(documents, cx_hash_key(&doc, sizeof(void*)));
+        char *docPtr = doc;
+        UiDoc *document = (UiDoc*)(docPtr - sizeof(void*));
+        return document->ctx;
     } else {
         return NULL;
     }

mercurial