VarAction2: Fix DSE for non-leaf procedure groups

This commit is contained in:
Jonathan G Rennison
2022-09-19 23:19:41 +01:00
parent a58d910a0b
commit f381e45d5b

View File

@@ -1574,9 +1574,9 @@ struct CheckDeterministicSpriteGroupOutputVarBitsProcedureHandler {
VarAction2GroupVariableTracking *var_tracking = _cur.GetVarAction2GroupVariableTracking(sub, true);
std::bitset<256> new_proc_call_out = (is_leaf_node ? this->output_bits : child_input_bits) | var_tracking->proc_call_out;
if (new_proc_call_out != var_tracking->proc_call_out) {
var_tracking->proc_call_out = new_proc_call_out;
std::bitset<256> old_total = var_tracking->out | var_tracking->proc_call_out;
std::bitset<256> new_total = var_tracking->out | new_proc_call_out;
var_tracking->proc_call_out = new_proc_call_out;
if (old_total != new_total) {
CheckDeterministicSpriteGroupOutputVarBits(sub, new_total, input_bits, false);
}