cid#1489772 UR: Uninitialized read of field in constructor

pass in SearchPoint to initialize pbest_t before it is then
passed to setMemPoints

setMemPoints sets the pbest_t variable of AbsGTBehavior so
calling setPbest on AbsGTBehavior subclasses after calling
that doesn't do anything so drop it, and then DEPSAgent.setPbest
isn't needed anymore

Change-Id: Id4fdc770cefc0f801218dc9bf51a6dc5b1e25d5a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120115
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
This commit is contained in:
Caolán McNamara 2021-08-06 12:22:43 +01:00
parent 8d8450f0c1
commit 5c299f0112
3 changed files with 6 additions and 13 deletions

View file

@ -72,7 +72,8 @@ public class DEPSAgent {
private double switchP = 0.5;
public DEPSAgent(ProblemEncoder encoder, DEGTBehavior deGTBehavior, PSGTBehavior psGTBehavior, double switchP, IGoodnessCompareEngine comparer) {
public DEPSAgent(ProblemEncoder encoder, DEGTBehavior deGTBehavior, PSGTBehavior psGTBehavior,
double switchP, IGoodnessCompareEngine comparer, SearchPoint pbest) {
this.switchP = switchP;
problemEncoder = encoder;
@ -82,6 +83,7 @@ public class DEPSAgent {
trailPoint = problemEncoder.getFreshSearchPoint();
pold_t = problemEncoder.getFreshSearchPoint();
pcurrent_t = problemEncoder.getFreshSearchPoint();
pbest_t = pbest;
this.deGTBehavior = deGTBehavior;
this.deGTBehavior.setMemPoints(pbest_t, pcurrent_t, pold_t);
@ -94,12 +96,6 @@ public class DEPSAgent {
qualityComparator = comparer;
}
public void setPbest(SearchPoint pbest) {
pbest_t = pbest;
deGTBehavior.setPbest(pbest_t);
psGTBehavior.setPbest(pbest_t);
}
private AbsGTBehavior getGTBehavior() {
if (RandomGenerator.doubleZeroOneRandom() < switchP) {
return deGTBehavior;

View file

@ -35,10 +35,6 @@ abstract public class AbsGTBehavior implements ILibEngine {
socialLib = lib;
}
public void setPbest(SearchPoint pbest) {
pbest_t = pbest;
}
abstract public void setMemPoints(SearchPoint pbest, BasicPoint pcurrent, BasicPoint pold);
abstract public void generateBehavior(SearchPoint trailPoint, ProblemEncoder problemEncoder);

View file

@ -141,8 +141,9 @@ public final class DEPSSolverImpl extends BaseEvolutionarySolver
psGTBehavior.weight = m_weight.getValue();
psGTBehavior.setLibrary(m_library);
agents[i] = new DEPSAgent(m_problemEncoder, deGTBehavior, psGTBehavior, m_agentSwitchRate.getValue(), m_specCompareEngine);
agents[i].setPbest(m_library.getSelectedPoint(i));
agents[i] = new DEPSAgent(m_problemEncoder, deGTBehavior, psGTBehavior,
m_agentSwitchRate.getValue(), m_specCompareEngine,
m_library.getSelectedPoint(i));
}
//Learn: