From a0f83e783f3eba1ec1edf777b031fa5b01358945 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Sun, 16 Feb 2025 09:55:12 -0700 Subject: [PATCH] [decycler] Reduce stack use 48bytes -> 40bytes per node. --- src/hb-decycler.hh | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/hb-decycler.hh b/src/hb-decycler.hh index faee8ad08..368cc37ae 100644 --- a/src/hb-decycler.hh +++ b/src/hb-decycler.hh @@ -38,7 +38,6 @@ struct hb_decycler_t private: hb_decycler_node_t *tortoise = nullptr; hb_decycler_node_t *hare = nullptr; - bool tortoise_asleep = false; }; struct hb_decycler_node_t @@ -55,21 +54,12 @@ struct hb_decycler_node_t return; } + tortoise_asleep = !decycler.hare->tortoise_asleep; decycler.hare->next = this; decycler.hare = this; - if (decycler.tortoise_asleep) - { - // Wake up toirtoise. - decycler.tortoise_asleep = false; - // Time to move. - decycler.tortoise = decycler.tortoise->next; - } - else - { - // Put toirtoise to sleep. - decycler.tortoise_asleep = true; - } + if (!tortoise_asleep) + decycler.tortoise = decycler.tortoise->next; // Time to move. } ~hb_decycler_node_t () @@ -95,6 +85,7 @@ struct hb_decycler_node_t hb_decycler_t snapshot; hb_decycler_node_t *next = nullptr; unsigned value = (unsigned) -1; + bool tortoise_asleep = false; }; #endif /* HB_DECYCLER_HH */