mirror of
https://github.com/mii443/wasmer.git
synced 2025-12-16 17:18:57 +00:00
feat(c-api) Update wasm-c-api repository.
This change is important because `wasm.h` contains new functions, like `wasm_name_new_from_string_nt`, which are useful for the Go implementation.
This commit is contained in:
@@ -146,6 +146,12 @@ public:
|
||||
}
|
||||
|
||||
static auto make(std::string s) -> vec<char> {
|
||||
auto v = vec(s.length());
|
||||
if (v) std::strncpy(v.get(), s.data(), s.length());
|
||||
return v;
|
||||
}
|
||||
|
||||
static auto make_nt(std::string s) -> vec<char> {
|
||||
auto v = vec(s.length() + 1);
|
||||
if (v) std::strcpy(v.get(), s.data());
|
||||
return v;
|
||||
@@ -431,11 +437,11 @@ class Val {
|
||||
|
||||
public:
|
||||
Val() : kind_(ValKind::ANYREF) { impl_.ref = nullptr; }
|
||||
Val(int32_t i) : kind_(ValKind::I32) { impl_.i32 = i; }
|
||||
Val(int64_t i) : kind_(ValKind::I64) { impl_.i64 = i; }
|
||||
Val(float32_t z) : kind_(ValKind::F32) { impl_.f32 = z; }
|
||||
Val(float64_t z) : kind_(ValKind::F64) { impl_.f64 = z; }
|
||||
Val(own<Ref>&& r) : kind_(ValKind::ANYREF) { impl_.ref = r.release(); }
|
||||
explicit Val(int32_t i) : kind_(ValKind::I32) { impl_.i32 = i; }
|
||||
explicit Val(int64_t i) : kind_(ValKind::I64) { impl_.i64 = i; }
|
||||
explicit Val(float32_t z) : kind_(ValKind::F32) { impl_.f32 = z; }
|
||||
explicit Val(float64_t z) : kind_(ValKind::F64) { impl_.f64 = z; }
|
||||
explicit Val(own<Ref>&& r) : kind_(ValKind::ANYREF) { impl_.ref = r.release(); }
|
||||
|
||||
Val(Val&& that) : kind_(that.kind_), impl_(that.impl_) {
|
||||
if (is_ref()) that.impl_.ref = nullptr;
|
||||
@@ -648,8 +654,8 @@ public:
|
||||
Func() = delete;
|
||||
~Func();
|
||||
|
||||
using callback = auto (*)(const Val[], Val[]) -> own<Trap>;
|
||||
using callback_with_env = auto (*)(void*, const Val[], Val[]) -> own<Trap>;
|
||||
using callback = auto (*)(const vec<Val>&, vec<Val>&) -> own<Trap>;
|
||||
using callback_with_env = auto (*)(void*, const vec<Val>&, vec<Val>&) -> own<Trap>;
|
||||
|
||||
static auto make(Store*, const FuncType*, callback) -> own<Func>;
|
||||
static auto make(Store*, const FuncType*, callback_with_env,
|
||||
@@ -660,7 +666,7 @@ public:
|
||||
auto param_arity() const -> size_t;
|
||||
auto result_arity() const -> size_t;
|
||||
|
||||
auto call(const Val[] = nullptr, Val[] = nullptr) const -> own<Trap>;
|
||||
auto call(const vec<Val>&, vec<Val>&) const -> own<Trap>;
|
||||
};
|
||||
|
||||
|
||||
@@ -731,7 +737,7 @@ public:
|
||||
~Instance();
|
||||
|
||||
static auto make(
|
||||
Store*, const Module*, const Extern* const[], own<Trap>* = nullptr
|
||||
Store*, const Module*, const vec<Extern*>&, own<Trap>* = nullptr
|
||||
) -> own<Instance>;
|
||||
auto copy() const -> own<Instance>;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user