From b52cfc4d186ffc37c92c586920836c78e371144e Mon Sep 17 00:00:00 2001 From: reiniscirpons Date: Tue, 19 Dec 2023 13:27:15 +0000 Subject: [PATCH] Fix infinite loop issue --- Makefile.am | 1 - include/libsemigroups/sims1.hpp | 2 +- include/libsemigroups/sims2.hpp | 3 +++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index 01d49cf7e..56d348260 100644 --- a/Makefile.am +++ b/Makefile.am @@ -92,7 +92,6 @@ pkginclude_HEADERS += include/libsemigroups/schreier-sims.hpp pkginclude_HEADERS += include/libsemigroups/sims1.hpp pkginclude_HEADERS += include/libsemigroups/sims1.tpp pkginclude_HEADERS += include/libsemigroups/sims2.hpp -pkginclude_HEADERS += include/libsemigroups/sims2.tpp pkginclude_HEADERS += include/libsemigroups/stephen.hpp pkginclude_HEADERS += include/libsemigroups/stephen.tpp pkginclude_HEADERS += include/libsemigroups/to-froidure-pin.hpp diff --git a/include/libsemigroups/sims1.hpp b/include/libsemigroups/sims1.hpp index 8b5f397db..949ae26ce 100644 --- a/include/libsemigroups/sims1.hpp +++ b/include/libsemigroups/sims1.hpp @@ -769,7 +769,7 @@ namespace libsemigroups { // Don't care about stats in this case std::for_each(cbegin(n), cend(n), pred); } else { - Subclass::stats().stats_zero(); + stats().stats_zero(); detail::Ticker t([this]() { report_progress_from_thread(); }); auto it = cbegin(n); auto const last = cend(n); diff --git a/include/libsemigroups/sims2.hpp b/include/libsemigroups/sims2.hpp index c6e57935d..4c6b4fcd0 100644 --- a/include/libsemigroups/sims2.hpp +++ b/include/libsemigroups/sims2.hpp @@ -98,6 +98,9 @@ namespace libsemigroups { private: size_t& used_slots(size_t num_edges) { LIBSEMIGROUPS_ASSERT(num_edges < _used_slots.size()); + if (_used_slots[0] == UNDEFINED) { + _used_slots[0] = 0; + } size_t i = num_edges; while (_used_slots[i] == UNDEFINED) { --i;