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; 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; this.switchP = switchP;
problemEncoder = encoder; problemEncoder = encoder;
@ -82,6 +83,7 @@ public class DEPSAgent {
trailPoint = problemEncoder.getFreshSearchPoint(); trailPoint = problemEncoder.getFreshSearchPoint();
pold_t = problemEncoder.getFreshSearchPoint(); pold_t = problemEncoder.getFreshSearchPoint();
pcurrent_t = problemEncoder.getFreshSearchPoint(); pcurrent_t = problemEncoder.getFreshSearchPoint();
pbest_t = pbest;
this.deGTBehavior = deGTBehavior; this.deGTBehavior = deGTBehavior;
this.deGTBehavior.setMemPoints(pbest_t, pcurrent_t, pold_t); this.deGTBehavior.setMemPoints(pbest_t, pcurrent_t, pold_t);
@ -94,12 +96,6 @@ public class DEPSAgent {
qualityComparator = comparer; qualityComparator = comparer;
} }
public void setPbest(SearchPoint pbest) {
pbest_t = pbest;
deGTBehavior.setPbest(pbest_t);
psGTBehavior.setPbest(pbest_t);
}
private AbsGTBehavior getGTBehavior() { private AbsGTBehavior getGTBehavior() {
if (RandomGenerator.doubleZeroOneRandom() < switchP) { if (RandomGenerator.doubleZeroOneRandom() < switchP) {
return deGTBehavior; return deGTBehavior;

View file

@ -35,10 +35,6 @@ abstract public class AbsGTBehavior implements ILibEngine {
socialLib = lib; socialLib = lib;
} }
public void setPbest(SearchPoint pbest) {
pbest_t = pbest;
}
abstract public void setMemPoints(SearchPoint pbest, BasicPoint pcurrent, BasicPoint pold); abstract public void setMemPoints(SearchPoint pbest, BasicPoint pcurrent, BasicPoint pold);
abstract public void generateBehavior(SearchPoint trailPoint, ProblemEncoder problemEncoder); 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.weight = m_weight.getValue();
psGTBehavior.setLibrary(m_library); psGTBehavior.setLibrary(m_library);
agents[i] = new DEPSAgent(m_problemEncoder, deGTBehavior, psGTBehavior, m_agentSwitchRate.getValue(), m_specCompareEngine); agents[i] = new DEPSAgent(m_problemEncoder, deGTBehavior, psGTBehavior,
agents[i].setPbest(m_library.getSelectedPoint(i)); m_agentSwitchRate.getValue(), m_specCompareEngine,
m_library.getSelectedPoint(i));
} }
//Learn: //Learn: