Commit f4afb2cc for tesseract

commit f4afb2cc9545f622a07812b09e1b72fc78f85a64
Author: Stefan Weil <sw@weilnetz.de>
Date:   Thu Jun 4 12:24:24 2026 +0200

    Fix compiler warning on macOS (#4558)

    Fixed warning:

        src/lstm/recodebeam.h:132:12: warning: first argument in call to 'memcpy' is a
        pointer to non-trivially copyable type 'tesseract::RecodeNode' [-Wnontrivial-memcall]

    Signed-off-by: Stefan Weil <sw@weilnetz.de>

diff --git a/src/lstm/recodebeam.h b/src/lstm/recodebeam.h
index 316fb16e..4017f3f8 100644
--- a/src/lstm/recodebeam.h
+++ b/src/lstm/recodebeam.h
@@ -128,9 +128,22 @@ struct RecodeNode {
     ASSERT_HOST(src.dawgs == nullptr);
   }
   RecodeNode &operator=(const RecodeNode &src) {
-    delete dawgs;
-    memcpy(this, &src, sizeof(src));
-    ((RecodeNode &)src).dawgs = nullptr;
+    if (this != &src) {
+      delete dawgs;
+      code = src.code;
+      unichar_id = src.unichar_id;
+      permuter = src.permuter;
+      start_of_dawg = src.start_of_dawg;
+      start_of_word = src.start_of_word;
+      end_of_word = src.end_of_word;
+      duplicate = src.duplicate;
+      certainty = src.certainty;
+      score = src.score;
+      prev = src.prev;
+      dawgs = src.dawgs;
+      code_hash = src.code_hash;
+      const_cast<RecodeNode &>(src).dawgs = nullptr;
+    }
     return *this;
   }
   ~RecodeNode() {