diff --git a/src/nfa/castlecompile.cpp b/src/nfa/castlecompile.cpp index b709d3c5..661c9c2c 100644 --- a/src/nfa/castlecompile.cpp +++ b/src/nfa/castlecompile.cpp @@ -772,7 +772,7 @@ bool mergeCastle(CastleProto &c1, const CastleProto &c2, const u32 top = m.first; const PureRepeat &pr = m.second; DEBUG_PRINTF("top %u\n", top); - u32 new_top = c1.add(pr); + u32 new_top = c1.merge(pr); top_map[top] = new_top; DEBUG_PRINTF("adding repeat: map %u->%u\n", top, new_top); } diff --git a/src/nfa/castlecompile.h b/src/nfa/castlecompile.h index aa4ed354..ea5f06da 100644 --- a/src/nfa/castlecompile.h +++ b/src/nfa/castlecompile.h @@ -128,7 +128,9 @@ buildCastle(const CastleProto &proto, const CompileContext &cc, const ReportManager &rm); /** - * \brief Merge two CastleProto prototypes together, if possible. + * \brief Merge two CastleProto prototypes together, if possible. If a + * particular repeat from c2 is already in c1, then it will be reused rather + * than adding a duplicate repeat. * * Returns true if merge of all repeats in c2 into c1 succeeds, and fills * mapping with the repeat indices.