re2: churn to new Abseil Recent Abseil introduced a MutexLock constructor taking a reference instead of a pointer and then immediately marked the pointer one deprecated, causing deprecation errors/warnings for users. Update to the new Abseil and change to references. Change-Id: Id9436a79789b5700bbe883f4ee1de99b32e0d3e1 Reviewed-on: https://code-review.googlesource.com/c/re2/+/64030 Reviewed-by: Alan Donovan <adonovan@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt index 81b4af2..7e9fa56 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -87,7 +87,7 @@ # indirectly), let that take precedence over any copy of Abseil that might have # been installed on the system. And likewise for ICU, GoogleTest and Benchmark. if(NOT TARGET absl::base) - find_package(absl REQUIRED) + find_package(absl 20250814 REQUIRED) endif() list(APPEND REQUIRES ${ABSL_DEPS})
diff --git a/MODULE.bazel b/MODULE.bazel index 1caf578..e6f3a84 100644 --- a/MODULE.bazel +++ b/MODULE.bazel
@@ -12,8 +12,8 @@ bazel_dep(name = "platforms", version = "1.0.0") bazel_dep(name = "apple_support", version = "1.22.1") -bazel_dep(name = "rules_cc", version = "0.1.4") -bazel_dep(name = "abseil-cpp", version = "20250512.1") +bazel_dep(name = "rules_cc", version = "0.2.0") +bazel_dep(name = "abseil-cpp", version = "20250814.1") bazel_dep(name = "rules_python", version = "1.5.1") bazel_dep(name = "pybind11_bazel", version = "2.13.6")
diff --git a/re2/dfa.cc b/re2/dfa.cc index 712a7b6..d587a55 100644 --- a/re2/dfa.cc +++ b/re2/dfa.cc
@@ -1015,7 +1015,7 @@ DFA::State* DFA::RunStateOnByteUnlocked(State* state, int c) { // Keep only one RunStateOnByte going // even if the DFA is being run by multiple threads. - absl::MutexLock l(&mutex_); + absl::MutexLock l(mutex_); return RunStateOnByte(state, c); } @@ -1267,7 +1267,7 @@ DFA::State* DFA::StateSaver::Restore() { if (is_special_) return special_; - absl::MutexLock l(&dfa_->mutex_); + absl::MutexLock l(dfa_->mutex_); State* s = dfa_->CachedState(inst_, ninst_, flag_); if (s == NULL) ABSL_LOG(DFATAL) << "StateSaver failed to restore state."; @@ -1730,7 +1730,7 @@ if (start != NULL) return true; - absl::MutexLock l(&mutex_); + absl::MutexLock l(mutex_); start = info->start.load(std::memory_order_relaxed); if (start != NULL) return true; @@ -2050,7 +2050,7 @@ // Build minimum prefix. State* s = params.start; min->clear(); - absl::MutexLock lock(&mutex_); + absl::MutexLock lock(mutex_); for (int i = 0; i < maxlen; i++) { if (previously_visited_states[s] > kMaxEltRepetitions) break;
diff --git a/re2/regexp.cc b/re2/regexp.cc index f7e5ba2..54955c1 100644 --- a/re2/regexp.cc +++ b/re2/regexp.cc
@@ -95,7 +95,7 @@ if (ref_ < kMaxRef) return ref_; - absl::MutexLock l(ref_mutex()); + absl::MutexLock l(*ref_mutex()); return (*ref_map())[this]; } @@ -108,7 +108,7 @@ }); // Store ref count in overflow map. - absl::MutexLock l(ref_mutex()); + absl::MutexLock l(*ref_mutex()); if (ref_ == kMaxRef) { // already overflowed (*ref_map())[this]++; @@ -128,7 +128,7 @@ void Regexp::Decref() { if (ref_ == kMaxRef) { // Ref count is stored in overflow map. - absl::MutexLock l(ref_mutex()); + absl::MutexLock l(*ref_mutex()); int r = (*ref_map())[this] - 1; if (r < kMaxRef) { ref_ = static_cast<uint16_t>(r);
diff --git a/re2/testing/regexp_benchmark.cc b/re2/testing/regexp_benchmark.cc index 3b0a533..3940467 100644 --- a/re2/testing/regexp_benchmark.cc +++ b/re2/testing/regexp_benchmark.cc
@@ -964,7 +964,7 @@ Prog* GetCachedProg(const char* regexp) { static auto& mutex = *new absl::Mutex; - absl::MutexLock lock(&mutex); + absl::MutexLock lock(mutex); static auto& cache = *new absl::flat_hash_map<std::string, Prog*>; Prog* prog = cache[regexp]; if (prog == NULL) { @@ -982,7 +982,7 @@ PCRE* GetCachedPCRE(const char* regexp) { static auto& mutex = *new absl::Mutex; - absl::MutexLock lock(&mutex); + absl::MutexLock lock(mutex); static auto& cache = *new absl::flat_hash_map<std::string, PCRE*>; PCRE* re = cache[regexp]; if (re == NULL) { @@ -995,7 +995,7 @@ RE2* GetCachedRE2(const char* regexp) { static auto& mutex = *new absl::Mutex; - absl::MutexLock lock(&mutex); + absl::MutexLock lock(mutex); static auto& cache = *new absl::flat_hash_map<std::string, RE2*>; RE2* re = cache[regexp]; if (re == NULL) {