Don't Index Out of Bounds

The phaseIsActive_ array has size numPhases.  We must not form the
expression phaseIsActive_[numPhases].  Switch to using fill_n in
place of fill lest we have to write

    fill(&phaseIsActive_[0], &phaseIsActive_[0] + numPhases, v)
This commit is contained in:
Bård Skaflestad
2020-01-24 20:44:26 +01:00
parent f36d181279
commit 2f827bfae5

View File

@@ -181,7 +181,7 @@ public:
initBegin(numRegions);
numActivePhases_ = 0;
std::fill(&phaseIsActive_[0], &phaseIsActive_[numPhases], false);
std::fill_n(&phaseIsActive_[0], numPhases, false);
if (deck.hasKeyword("OIL")) {
phaseIsActive_[oilPhaseIdx] = true;
@@ -268,7 +268,7 @@ public:
setReservoirTemperature(surfaceTemperature);
numActivePhases_ = numPhases;
std::fill(&phaseIsActive_[0], &phaseIsActive_[numPhases], true);
std::fill_n(&phaseIsActive_[0], numPhases, true);
resizeArrays_(numPvtRegions);
}