--- 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; }