diff --git a/cpp/extism.hpp b/cpp/extism.hpp index b45c4f46a..a1eb07d30 100644 --- a/cpp/extism.hpp +++ b/cpp/extism.hpp @@ -205,6 +205,8 @@ class Function { this->func = std::shared_ptr(ptr, extism_function_free); } + Function(const Function &f) { this->func = f.func; } + ExtismFunction *get() { return this->func.get(); } }; @@ -218,7 +220,7 @@ class Plugin { ExtismSize length, bool with_wasi = false, std::vector functions = std::vector()) : functions(functions) { - std::vector ptrs; + std::vector ptrs; for (auto i : this->functions) { ptrs.push_back(i.get()); } @@ -234,7 +236,7 @@ class Plugin { #ifndef EXTISM_NO_JSON Plugin(std::shared_ptr ctx, const Manifest &manifest, bool with_wasi = false, std::vector functions = {}) { - std::vector ptrs; + std::vector ptrs; for (auto i : this->functions) { ptrs.push_back(i.get()); } @@ -263,7 +265,7 @@ class Plugin { void update(const uint8_t *wasm, size_t length, bool with_wasi = false, std::vector functions = {}) { this->functions = functions; - std::vector ptrs; + std::vector ptrs; for (auto i : this->functions) { ptrs.push_back(i.get()); } @@ -279,7 +281,7 @@ class Plugin { void update(const Manifest &manifest, bool with_wasi = false, std::vector functions = {}) { this->functions = functions; - std::vector ptrs; + std::vector ptrs; for (auto i : this->functions) { ptrs.push_back(i.get()); }