From f7d8ea3866c26df10617e97513e906d1f5a5b833 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sun, 18 Jan 2015 10:41:56 +0100 Subject: [PATCH] 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. --- src/endgame.h | 4 ++-- src/material.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/endgame.h b/src/endgame.h index 7ff70373..453d8b29 100644 --- a/src/endgame.h +++ b/src/endgame.h @@ -113,8 +113,8 @@ class Endgames { public: Endgames(); - template T* probe(Key key, T** eg) - { return *eg = map().count(key) ? map()[key].get() : nullptr; } + template> E* probe(Key key) + { return map().count(key) ? map()[key].get() : nullptr; } }; #endif // #ifndef ENDGAME_H_INCLUDED diff --git a/src/material.cpp b/src/material.cpp index be2cc594..e2294212 100644 --- a/src/material.cpp +++ b/src/material.cpp @@ -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(key)) != nullptr) return e; if (is_KXK(pos)) @@ -158,7 +158,7 @@ Entry* probe(const Position& pos) { // configuration. Is there a suitable specialized scaling function? EndgameBase* sf; - if (pos.this_thread()->endgames.probe(key, &sf)) + if ((sf = pos.this_thread()->endgames.probe(key)) != nullptr) { e->scalingFunction[sf->strong_side()] = sf; // Only strong color assigned return e; -- 2.39.2