@@ -166,14 +166,14 @@ inline fizzy::Value* unwrap(FizzyValue* value) noexcept
166
166
return reinterpret_cast <fizzy::Value*>(value);
167
167
}
168
168
169
- inline FizzyExecutionContext* wrap (fizzy::ExecutionContext& ctx) noexcept
169
+ inline FizzyExecutionContext* wrap (fizzy::ExecutionContext* ctx) noexcept
170
170
{
171
- return reinterpret_cast <FizzyExecutionContext*>(& ctx);
171
+ return reinterpret_cast <FizzyExecutionContext*>(ctx);
172
172
}
173
173
174
- inline fizzy::ExecutionContext& unwrap (FizzyExecutionContext* ctx) noexcept
174
+ inline fizzy::ExecutionContext* unwrap (FizzyExecutionContext* ctx) noexcept
175
175
{
176
- return * reinterpret_cast <fizzy::ExecutionContext*>(ctx);
176
+ return reinterpret_cast <fizzy::ExecutionContext*>(ctx);
177
177
}
178
178
179
179
inline FizzyInstance* wrap (fizzy::Instance* instance) noexcept
@@ -208,7 +208,7 @@ inline fizzy::ExecuteFunction unwrap(FizzyExternalFn c_function, void* c_host_co
208
208
fizzy::ExecutionContext& ctx) noexcept {
209
209
const auto [c_func, c_host_ctx] =
210
210
*std::any_cast<std::pair<FizzyExternalFn, void *>>(&host_ctx);
211
- return unwrap (c_func (c_host_ctx, wrap (&instance), wrap (args), wrap (ctx)));
211
+ return unwrap (c_func (c_host_ctx, wrap (&instance), wrap (args), wrap (& ctx)));
212
212
};
213
213
214
214
return {function, std::make_any<std::pair<FizzyExternalFn, void *>>(c_function, c_host_context)};
@@ -224,10 +224,10 @@ inline FizzyExternalFunction wrap(fizzy::ExternalFunction external_func)
224
224
std::unique_ptr<fizzy::ExecutionContext> new_ctx;
225
225
if (c_ctx == nullptr )
226
226
new_ctx = std::make_unique<fizzy::ExecutionContext>();
227
- auto & ctx = new_ctx ? * new_ctx : unwrap (c_ctx);
227
+ auto * ctx = new_ctx ? new_ctx. get () : unwrap (c_ctx);
228
228
229
229
auto * func = static_cast <fizzy::ExternalFunction*>(host_ctx);
230
- return wrap ((func->function )(*unwrap (instance), unwrap (args), ctx));
230
+ return wrap ((func->function )(*unwrap (instance), unwrap (args), * ctx));
231
231
};
232
232
233
233
auto host_ctx = std::make_unique<fizzy::ExternalFunction>(std::move (external_func));
@@ -713,7 +713,7 @@ FizzyExecutionResult fizzy_execute(FizzyInstance* c_instance, uint32_t func_idx,
713
713
const auto * args = unwrap (c_args);
714
714
const auto result =
715
715
(c_ctx == nullptr ? fizzy::execute (*instance, func_idx, args) :
716
- fizzy::execute (*instance, func_idx, args, unwrap (c_ctx)));
716
+ fizzy::execute (*instance, func_idx, args, * unwrap (c_ctx)));
717
717
return wrap (result);
718
718
}
719
719
0 commit comments