[webkit-reviews] review granted: [Bug 198157] [WASM-References] Add support for Funcref in parameters and return types : [Attachment 372170] Patch
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Sun Jun 16 00:16:28 PDT 2019
Yusuke Suzuki <ysuzuki at apple.com> has granted Justin Michaud
<justin_michaud at apple.com>'s request for review:
Bug 198157: [WASM-References] Add support for Funcref in parameters and return
types
https://bugs.webkit.org/show_bug.cgi?id=198157
Attachment 372170: Patch
https://bugs.webkit.org/attachment.cgi?id=372170&action=review
--- Comment #8 from Yusuke Suzuki <ysuzuki at apple.com> ---
Comment on attachment 372170
--> https://bugs.webkit.org/attachment.cgi?id=372170
Patch
View in context: https://bugs.webkit.org/attachment.cgi?id=372170&action=review
r=me with several fixes.
> Source/JavaScriptCore/wasm/WasmInstance.cpp:86
> + return m_functionWrappers.contains(i) ? m_functionWrappers.get(i).get()
: jsNull();
`contains(i)` and `get(i)` calls are duplicate basically. So we are looking up
hash table twice.
Can we just use `get(i)`? I think it will return empty WriteBarrier thing.
Then, we can convert JSEmpty to JSNull, and we can do this function without
using `contains`.
> Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp:98
> +
visitor.appendUnbarriered(thisObject->instance().getFunctionWrapper(i));
Ah, I missed it. Why not just iterating the hashmap of wrappers? I think # of
wrappers can be much smaller than the total number of function space size. And
it also avoids repeated calls of `contains()` / `get()` in getFunctionWrapper.
And I think the hashtable can be modified by the user's setFunctionWrapper. So
locking is necessary.
More information about the webkit-reviews
mailing list