@@ -46,6 +46,7 @@ using ecsact::wasm::detail::set_call_mem_data;
4646using ecsact::wasm::detail::start_transaction;
4747
4848namespace {
49+ std::string last_error_message = " " ;
4950
5051struct minst_ecsact_system_impls {
5152 minst minst;
@@ -139,22 +140,18 @@ void ecsact_si_wasm_last_error_message(
139140 char * out_message,
140141 int32_t message_max_length
141142) {
142- // auto& last_error_message =
143- // ecsact_si_wasm::detail::get_last_error_message(); std::copy_n(
144- // last_error_message.begin(),
145- // std::min(
146- // message_max_length,
147- // static_cast<int32_t>(last_error_message.size())
148- // ),
149- // out_message
150- // );
143+ std::copy_n (
144+ last_error_message.begin (),
145+ std::min (
146+ message_max_length,
147+ static_cast <int32_t >(last_error_message.size ())
148+ ),
149+ out_message
150+ );
151151}
152152
153153int32_t ecsact_si_wasm_last_error_message_length () {
154- return 0 ;
155- // return static_cast<int32_t>(
156- // ecsact_si_wasm::detail::get_last_error_message().size()
157- // );
154+ return static_cast <int32_t >(last_error_message.size ());
158155}
159156
160157ecsact_si_wasm_error ecsact_si_wasm_load (
@@ -212,6 +209,7 @@ ecsact_si_wasm_error ecsact_si_wasm_load(
212209
213210 if (std::holds_alternative<minst_error>(result)) {
214211 auto err = std::get<minst_error>(result);
212+ last_error_message = err.message ;
215213 switch (err.code ) {
216214 case minst_error_code::ok:
217215 assert (err.code != minst_error_code::ok);
0 commit comments