From 94b35a234e683abd83824a0d966ee7276f53ff4d Mon Sep 17 00:00:00 2001 From: Olek <115580134+oleks-rip@users.noreply.github.com> Date: Wed, 21 Jan 2026 15:27:06 -0500 Subject: [PATCH] Make hostfunctions object shared (#6252) --- src/xrpld/app/tx/detail/Escrow.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/xrpld/app/tx/detail/Escrow.cpp b/src/xrpld/app/tx/detail/Escrow.cpp index 595e573041..b19cbacbe6 100644 --- a/src/xrpld/app/tx/detail/Escrow.cpp +++ b/src/xrpld/app/tx/detail/Escrow.cpp @@ -217,7 +217,7 @@ EscrowCreate::preflight(PreflightContext const& ctx) return temMALFORMED; } - HostFunctions mock(ctx.j); + auto mock(std::make_shared(ctx.j)); auto const re = preflightEscrowWasm(code, mock, ESCROW_FUNCTION_NAME); if (!isTesSuccess(re)) { @@ -1206,7 +1206,8 @@ EscrowFinish::doApply() auto const wasmStr = slep->getFieldVL(sfFinishFunction); std::vector wasm(wasmStr.begin(), wasmStr.end()); - WasmHostFunctionsImpl ledgerDataProvider(ctx_, k); + auto ledgerDataProvider( + std::make_shared(ctx_, k)); if (!ctx_.tx.isFieldPresent(sfComputationAllowance)) { @@ -1218,7 +1219,7 @@ EscrowFinish::doApply() wasm, ledgerDataProvider, ESCROW_FUNCTION_NAME, {}, allowance); JLOG(j_.trace()) << "Escrow WASM ran"; - if (auto const& data = ledgerDataProvider.getData(); data.has_value()) + if (auto const& data = ledgerDataProvider->getData(); data.has_value()) { slep->setFieldVL(sfData, makeSlice(*data)); ctx_.view().update(slep);