🐛 Fix problem with store font after cleanup

This commit is contained in:
alonso.torres 2026-04-16 13:55:28 +02:00 committed by Belén Albeza
parent 0b49c1f3e9
commit 88ec9e4ff1

View File

@ -121,24 +121,25 @@
;; IMPORTANT: Only TTF fonts can be stored. ;; IMPORTANT: Only TTF fonts can be stored.
(defn- store-font-buffer (defn- store-font-buffer
[font-data font-array-buffer emoji? fallback?] [font-data font-array-buffer emoji? fallback?]
(let [font-id-buffer (:family-id-buffer font-data) (when wasm/context-initialized?
size (.-byteLength font-array-buffer) (let [font-id-buffer (:family-id-buffer font-data)
ptr (h/call wasm/internal-module "_alloc_bytes" size) size (.-byteLength font-array-buffer)
heap (gobj/get ^js wasm/internal-module "HEAPU8") ptr (h/call wasm/internal-module "_alloc_bytes" size)
mem (js/Uint8Array. (.-buffer heap) ptr size)] heap (gobj/get ^js wasm/internal-module "HEAPU8")
mem (js/Uint8Array. (.-buffer heap) ptr size)]
(.set mem (js/Uint8Array. font-array-buffer)) (.set mem (js/Uint8Array. font-array-buffer))
(st/emit! (ptk/data-event :font-loaded {:font-id (:font-id font-data)})) (st/emit! (ptk/data-event :font-loaded {:font-id (:font-id font-data)}))
(h/call wasm/internal-module "_store_font" (h/call wasm/internal-module "_store_font"
(aget font-id-buffer 0) (aget font-id-buffer 0)
(aget font-id-buffer 1) (aget font-id-buffer 1)
(aget font-id-buffer 2) (aget font-id-buffer 2)
(aget font-id-buffer 3) (aget font-id-buffer 3)
(:weight font-data) (:weight font-data)
(:style font-data) (:style font-data)
emoji? emoji?
fallback?) fallback?)
true)) true)))
;; Tracks fonts currently being fetched: {url -> fallback?} ;; Tracks fonts currently being fetched: {url -> fallback?}
;; When the same font is requested as both primary and fallback, ;; When the same font is requested as both primary and fallback,