Skip to content

Fix algorithm and lines init function not being called

Arthur Marius Hennequin requested to merge ahennequ_init into master

Fix 2 issues that cause the init of lines to not be called.

The consequence is that pre and post scaler hashes are not initialized, they stay at 0 and cause coupling between the lines decisions.

The first issue is the definition of init() in the Algorithm baseclass, since the lines derive from both Algorithm and Line, which init gets picked depends on the order of declarations. Removing the init from Algorithm forces to use the init of Line. A better fix would be to use using Line<Derived>::init; in each line, but that could also be error prone if users forgets to do it. This issue was introduced in !1377 (merged)

The second issue is in the lines that uses a custom init() function and forgot to call the parent init().

Reproduction of the first issue in godbolt: https://godbolt.org/z/15sevb4ob I believe there is a compiler bug: it should throw a compile error in all cases.

Edited by Arthur Marius Hennequin

Merge request reports