VarAction2: Use reserve and shrink_to_fit for DSG adjusts vector

pull/590/head
Jonathan G Rennison 10 months ago
parent 129691dcc7
commit c49651ae7b

@ -6014,6 +6014,9 @@ static void NewSpriteGroup(ByteReader *buf)
/* Continue reading var adjusts while bit 5 is set. */
} while (HasBit(varadjust, 5));
/* shrink_to_fit will be called later */
group->adjusts.reserve(current_adjusts.size());
for (const DeterministicSpriteGroupAdjust &adjust : current_adjusts) {
group->adjusts.push_back(adjust);
OptimiseVarAction2Adjust(va2_opt_state, info, group, group->adjusts.back());

@ -2745,6 +2745,8 @@ void OptimiseVarAction2DeterministicSpriteGroup(VarAction2OptimiseState &state,
OptimiseVarAction2DeterministicSpriteGroupExpensiveVars(group, info.scope_feature);
}
}
if (!dse_candidate) group->adjusts.shrink_to_fit();
}
static std::bitset<256> HandleVarAction2DeadStoreElimination(DeterministicSpriteGroup *group, VarAction2GroupVariableTracking *var_tracking, bool no_changes)
@ -3141,6 +3143,8 @@ void HandleVarAction2OptimisationPasses()
if (group->dsg_flags & DSGF_CHECK_INSERT_JUMP) {
OptimiseVarAction2DeterministicSpriteResolveJumps(group);
}
group->adjusts.shrink_to_fit();
}
}

Loading…
Cancel
Save