1
0
Fork 0

Fix a coverity scan warning

Coverity scan warns about uninitialized 'sf' argument when
calling probe(). Actually it is a false positive because
argument is passed by reference and assigned inside
probe(). Nevertheless it is a hint that fucntion signature
is a bit tricky, so rewrite it in a more conventional way,
assigning 'sf' from probe() return value.

No functional change.
pull/268/head
Marco Costalba 2015-01-18 10:41:56 +01:00
parent f53aea45e3
commit f7d8ea3866
2 changed files with 4 additions and 4 deletions

View File

@ -113,8 +113,8 @@ class Endgames {
public:
Endgames();
template<typename T> T* probe(Key key, T** eg)
{ return *eg = map<T>().count(key) ? map<T>()[key].get() : nullptr; }
template<typename T, typename E = EndgameBase<T>> E* probe(Key key)
{ return map<E>().count(key) ? map<E>()[key].get() : nullptr; }
};
#endif // #ifndef ENDGAME_H_INCLUDED

View File

@ -139,7 +139,7 @@ Entry* probe(const Position& pos) {
// Let's look if we have a specialized evaluation function for this particular
// material configuration. Firstly we look for a fixed configuration one, then
// for a generic one if the previous search failed.
if (pos.this_thread()->endgames.probe(key, &e->evaluationFunction))
if ((e->evaluationFunction = pos.this_thread()->endgames.probe<Value>(key)) != nullptr)
return e;
if (is_KXK<WHITE>(pos))
@ -158,7 +158,7 @@ Entry* probe(const Position& pos) {
// configuration. Is there a suitable specialized scaling function?
EndgameBase<ScaleFactor>* sf;
if (pos.this_thread()->endgames.probe(key, &sf))
if ((sf = pos.this_thread()->endgames.probe<ScaleFactor>(key)) != nullptr)
{
e->scalingFunction[sf->strong_side()] = sf; // Only strong color assigned
return e;