The crash was because ErrorState::errorArrayCache was cleared (deallocated) too soon when it is still needed by PrettyExpressionBuilder. By substituting the original ErrorState::errorArrayCache with Executor::arrayCache, the array cache is still available when it is used by PrettyExpressionBuilder.
This fix assigns
Executor::arrayCache
, which is more permanent, toErrorState::errorArrayCache
to prevent crashes such as the following:The crash was because ErrorState::errorArrayCache was cleared (deallocated) too soon when it is still needed by PrettyExpressionBuilder. By substituting the original ErrorState::errorArrayCache with Executor::arrayCache, the array cache is still available when it is used by PrettyExpressionBuilder.