VarAction2: Use reserve and shrink_to_fit for DSG adjusts vector
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user