Closed nicobuzeta closed 1 year ago
current_node in map_states is wrong.
Issue was that 1 << number
sometimes overflowed. This was an oversight as the result was being saved to an mpz_class but the bit shift itself was being performed the 1 not on an mpz_class. All 1 << number
hace been changed to mpz_class(1).
Might need to revisit in the future to change the mpz_class to be saved beforehand and reused, so we don't allocate a new mpz_class on every shift. For now works and doubtful of performance impact as all bit shifts inside of fors occur before automata evaluation code.
Appears to be a bug in that causes segmentation fault with long query with OR.
No crash:
Crash:
Valgrind
``` ==1068091== Invalid read of size 8 ==1068091== at 0x173FF5: CORE::Internal::CEA::RemoveStates::map_states(__gmp_expr<__mpz_struct [1], __mpz_struct [1]>, std::vectorCrashes when removing first SELL but not if remove SELL and (SELL OR BUY). Must depend on amount of ORs.
Replacing all continuous : with contiguous ; also crashes.