Use ranges::reverse_view to fix a few reverse ranged-for loops

This commit is contained in:
Tim Wojtulewicz 2025-07-10 21:32:18 -07:00 committed by Tim Wojtulewicz
parent 832f67e91c
commit 8640f92b1f
4 changed files with 14 additions and 11 deletions

View file

@ -15,6 +15,7 @@
#include <cerrno>
#include <csignal>
#include <cstdlib>
#include <ranges>
// Most of these includes are needed for code included from bif files.
#include "zeek/Base64.h"
@ -88,11 +89,10 @@ std::string render_call_stack() {
if ( ! detail::call_stack.empty() )
rval += "| ";
for ( auto it = detail::call_stack.rbegin(); it != detail::call_stack.rend(); ++it ) {
for ( auto& ci : std::ranges::reverse_view(detail::call_stack) ) {
if ( lvl > 0 )
rval += " | ";
auto& ci = *it;
const auto& name = ci.func->GetName();
std::string arg_desc;
@ -938,8 +938,7 @@ zeek::VectorValPtr get_current_script_backtrace() {
// to prevent problems with iterator invalidation.
auto cs_copy = zeek::detail::call_stack;
for ( auto it = cs_copy.rbegin(); it != cs_copy.rend(); ++it ) {
const auto& ci = *it;
for ( const auto& ci : std::ranges::reverse_view(cs_copy) ) {
if ( ! ci.func )
// This happens for compiled code.
continue;

View file

@ -2,6 +2,8 @@
#include "zeek/Scope.h"
#include <ranges>
#include "zeek/Desc.h"
#include "zeek/ID.h"
#include "zeek/IntrusivePtr.h"
@ -112,8 +114,8 @@ const IDPtr& lookup_ID(const char* name, const char* curr_module, bool no_global
if ( ! explicit_global ) {
bool need_export = check_export && (ID_module != GLOBAL_MODULE_NAME && ID_module != curr_module);
for ( auto s_i = scopes.rbegin(); s_i != scopes.rend(); ++s_i ) {
const auto& id = (*s_i)->Find(fullname);
for ( const auto& s_i : std::ranges::reverse_view(scopes) ) {
const auto& id = s_i->Find(fullname);
if ( id ) {
if ( need_export && ! id->IsExport() && ! in_debug )

View file

@ -12,6 +12,7 @@
#include <cstdlib>
#include <fstream>
#include <optional>
#include <ranges>
#include <regex>
#include <sstream>
@ -375,8 +376,8 @@ void Manager::ActivateDynamicPlugins(bool all) {
}
void Manager::UpdateInputFiles() {
for ( file_list::const_reverse_iterator i = scripts_to_load.rbegin(); i != scripts_to_load.rend(); i++ )
add_input_file_at_front((*i).c_str());
for ( const auto& script : std::ranges::reverse_view(scripts_to_load) )
add_input_file_at_front(script.c_str());
scripts_to_load.clear();
}

View file

@ -3,6 +3,7 @@
#include "zeek/spicy/runtime-support.h"
#include <memory>
#include <ranges>
#include <hilti/rt/exception.h>
#include <hilti/rt/profiler.h>
@ -886,9 +887,9 @@ const rt::cookie::FileState* rt::cookie::FileStateStack::find(const std::string&
auto _ = hilti::rt::profiler::start("zeek/rt/file-stack-find");
// Reverse search as the default state would be on top of the stack.
for ( auto i = _stack.rbegin(); i != _stack.rend(); i++ ) {
if ( i->fid == fid )
return &*i;
for ( const auto& i : std::ranges::reverse_view(_stack) ) {
if ( i.fid == fid )
return &i;
}
return nullptr;