diff --git a/src/ripple/rpc/BookChanges.h b/src/ripple/rpc/BookChanges.h index 5aef1c693d..7d7978d3fe 100644 --- a/src/ripple/rpc/BookChanges.h +++ b/src/ripple/rpc/BookChanges.h @@ -88,13 +88,10 @@ computeBookChanges(std::shared_ptr const& lpAccepted) !node.isFieldPresent(sfPreviousFields)) continue; - STObject& finalFields = (const_cast(node)) - .getField(sfFinalFields) - .downcast(); - - STObject& previousFields = (const_cast(node)) - .getField(sfPreviousFields) - .downcast(); + auto const& ffBase = node.peekAtField(sfFinalFields); + auto const& finalFields = ffBase.template downcast(); + auto const& pfBase = node.peekAtField(sfPreviousFields); + auto const& previousFields = pfBase.template downcast(); // defensive case that should never be hit if (!finalFields.isFieldPresent(sfTakerGets) ||