WebAssembly: improve stack trace
[WebKit-https.git] / Source / JavaScriptCore / wasm / WasmNameSection.h
index 8b1f009..2a9b0b8 100644 (file)
@@ -26,6 +26,7 @@
 #pragma once
 
 #include "WasmName.h"
+#include <wtf/text/CString.h>
 #include <wtf/ThreadSafeRefCounted.h>
 #include <wtf/Vector.h>
 #include <utility>
 namespace JSC { namespace Wasm {
 
 struct NameSection : public ThreadSafeRefCounted<NameSection> {
+    NameSection(const CString &hash)
+        : moduleHash(hash.length())
+    {
+        for (size_t i = 0; i < hash.length(); ++i)
+            moduleHash[i] = static_cast<uint8_t>(*(hash.data() + i));
+    }
+    NameSection(const NameSection&) = delete;
+
     std::pair<const Name*, RefPtr<NameSection>> get(size_t functionIndexSpace)
     {
-        return functionIndexSpace < functionNames.size() ? std::make_pair(&functionNames[functionIndexSpace], RefPtr<NameSection>(this)) : std::pair<const Name*, RefPtr<NameSection>>(nullptr, nullptr);
+        return std::make_pair(functionIndexSpace < functionNames.size() ? &functionNames[functionIndexSpace] : nullptr, RefPtr<NameSection>(this));
     }
     Name moduleName;
+    Name moduleHash;
     Vector<Name> functionNames;
 };