@@ -337,7 +337,9 @@ class V10Builder {
337337 std::function<void (ReducerContext&, BytesSource)> handler;
338338 if constexpr (traits::arity == 1 ) {
339339 handler = [func](ReducerContext& ctx, BytesSource) {
340- auto result = func (ctx);
340+ auto result = __spacetimedb_begin_short_backtrace ([&] {
341+ return func (ctx);
342+ });
341343 if (result.is_err ()) {
342344 ::SpacetimeDB::fail_reducer (result.error());
343345 }
@@ -349,7 +351,9 @@ class V10Builder {
349351 bsatn::Reader reader (bytes.data (), bytes.size ());
350352 auto args = std::make_tuple (bsatn::deserialize<typename traits::template arg_t <Js + 1 >>(reader)...);
351353 std::apply ([&ctx_inner, fn](auto &&... unpacked) {
352- auto result = fn (ctx_inner, std::forward<decltype (unpacked)>(unpacked)...);
354+ auto result = __spacetimedb_begin_short_backtrace ([&] {
355+ return fn (ctx_inner, std::forward<decltype (unpacked)>(unpacked)...);
356+ });
353357 if (result.is_err ()) {
354358 ::SpacetimeDB::fail_reducer (result.error());
355359 }
@@ -406,7 +410,9 @@ class V10Builder {
406410 std::function<void (ReducerContext&, BytesSource)> handler;
407411 if constexpr (traits::arity == 1 ) {
408412 handler = [func](ReducerContext& ctx, BytesSource) {
409- auto result = func (ctx);
413+ auto result = __spacetimedb_begin_short_backtrace ([&] {
414+ return func (ctx);
415+ });
410416 if (result.is_err ()) {
411417 ::SpacetimeDB::fail_reducer (result.error());
412418 }
@@ -418,7 +424,9 @@ class V10Builder {
418424 bsatn::Reader reader (bytes.data (), bytes.size ());
419425 auto args = std::make_tuple (bsatn::deserialize<typename traits::template arg_t <Js + 1 >>(reader)...);
420426 std::apply ([&ctx_inner, fn](auto &&... unpacked) {
421- auto result = fn (ctx_inner, std::forward<decltype (unpacked)>(unpacked)...);
427+ auto result = __spacetimedb_begin_short_backtrace ([&] {
428+ return fn (ctx_inner, std::forward<decltype (unpacked)>(unpacked)...);
429+ });
422430 if (result.is_err ()) {
423431 ::SpacetimeDB::fail_reducer (result.error());
424432 }
@@ -461,7 +469,9 @@ class V10Builder {
461469 std::function<std::vector<uint8_t >(ViewContext&, BytesSource)> handler =
462470 [func](ViewContext& ctx, BytesSource args_source) -> std::vector<uint8_t > {
463471 (void )args_source;
464- auto result = func (ctx);
472+ auto result = __spacetimedb_begin_short_backtrace ([&] {
473+ return func (ctx);
474+ });
465475 auto result_vec = view_result_to_vec (std::move (result));
466476 IterBuf buf = IterBuf::take ();
467477 {
@@ -475,7 +485,9 @@ class V10Builder {
475485 std::function<std::vector<uint8_t >(AnonymousViewContext&, BytesSource)> handler =
476486 [func](AnonymousViewContext& ctx, BytesSource args_source) -> std::vector<uint8_t > {
477487 (void )args_source;
478- auto result = func (ctx);
488+ auto result = __spacetimedb_begin_short_backtrace ([&] {
489+ return func (ctx);
490+ });
479491 auto result_vec = view_result_to_vec (std::move (result));
480492 IterBuf buf = IterBuf::take ();
481493 {
@@ -525,7 +537,9 @@ class V10Builder {
525537 std::function<std::vector<uint8_t >(ProcedureContext&, BytesSource)> handler;
526538 if constexpr (traits::arity == 1 ) {
527539 handler = [func](ProcedureContext& ctx, BytesSource) -> std::vector<uint8_t > {
528- auto result = func (ctx);
540+ auto result = __spacetimedb_begin_short_backtrace ([&] {
541+ return func (ctx);
542+ });
529543 IterBuf buf = IterBuf::take ();
530544 {
531545 bsatn::Writer writer (buf.get ());
@@ -539,9 +553,11 @@ class V10Builder {
539553 return []<std::size_t ... Js>(std::index_sequence<Js...>, Func fn, ProcedureContext& ctx_inner, const std::vector<uint8_t >& bytes) -> std::vector<uint8_t > {
540554 bsatn::Reader reader (bytes.data (), bytes.size ());
541555 auto args = std::make_tuple (bsatn::deserialize<typename traits::template arg_t <Js + 1 >>(reader)...);
542- auto result = std::apply ([&ctx_inner, fn](auto &&... unpacked) {
543- return fn (ctx_inner, std::forward<decltype (unpacked)>(unpacked)...);
544- }, args);
556+ auto result = __spacetimedb_begin_short_backtrace ([&] {
557+ return std::apply ([&ctx_inner, fn](auto &&... unpacked) {
558+ return fn (ctx_inner, std::forward<decltype (unpacked)>(unpacked)...);
559+ }, args);
560+ });
545561 IterBuf buf = IterBuf::take ();
546562 {
547563 bsatn::Writer writer (buf.get ());
0 commit comments