From 382d3371184232b6e4f283bbc42d3a9dc21b7b22 Mon Sep 17 00:00:00 2001 From: Kp Date: Sat, 19 Nov 2016 17:24:53 +0000 Subject: [PATCH] Switch obj_get_signature to std::any_of Also, split the predicate into separate statements to improve the output of analysis tools. --- similar/main/object.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/similar/main/object.cpp b/similar/main/object.cpp index 0996e3362..42cac7868 100644 --- a/similar/main/object.cpp +++ b/similar/main/object.cpp @@ -924,10 +924,12 @@ object_signature_t obj_get_signature() if (unlikely(lsig == std::numeric_limits::max())) lsig = 0; ++ lsig; - const auto predicate = [lsig](const vcobjptr_t &o) { - return o->type != OBJ_NONE && o->signature.get() == lsig; + const auto predicate = [lsig](const object_base &o) { + if (o.type == OBJ_NONE) + return false; + return o.signature.get() == lsig; }; - if (std::find_if(b, e, predicate) != e) + if (std::any_of(b, e, predicate)) continue; sig = static_cast(lsig); return object_signature_t{static_cast(lsig)};