From: Michael Friedrich <michael.friedrich@icinga.com>
Date: Tue, 9 Jul 2019 11:20:53 +0000 (+0200)
Subject: Quality: Prefer BOOST_{,UN}LIKELY gcc optimizer macros over our own
X-Git-Tag: v2.11.0-rc1~36^2
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=refs%2Fpull%2F7300%2Fhead;p=icinga2

Quality: Prefer BOOST_{,UN}LIKELY gcc optimizer macros over our own

Our macro collides with Boost::DateTime and the gregorian classes
and I don't see any reason why we shouldn't use Boost::Config
being already there.
---

diff --git a/lib/base/i2-base.hpp b/lib/base/i2-base.hpp
index 6bb756338..58aac4803 100644
--- a/lib/base/i2-base.hpp
+++ b/lib/base/i2-base.hpp
@@ -72,14 +72,6 @@
 #	pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 #endif
 
-#if defined(__GNUC__)
-#	define likely(x) __builtin_expect(!!(x), 1)
-#	define unlikely(x) __builtin_expect(!!(x), 0)
-#else
-#	define likely(x) (x)
-#	define unlikely(x) (x)
-#endif
-
 #define BOOST_BIND_NO_PLACEHOLDERS
 
 #include <functional>
diff --git a/lib/config/vmops.hpp b/lib/config/vmops.hpp
index 72d820dfb..8bd456d40 100644
--- a/lib/config/vmops.hpp
+++ b/lib/config/vmops.hpp
@@ -235,10 +235,10 @@ public:
 
 	static inline Value GetField(const Value& context, const String& field, bool sandboxed = false, const DebugInfo& debugInfo = DebugInfo())
 	{
-		if (unlikely(context.IsEmpty() && !context.IsString()))
+		if (BOOST_UNLIKELY(context.IsEmpty() && !context.IsString()))
 			return Empty;
 
-		if (unlikely(!context.IsObject()))
+		if (BOOST_UNLIKELY(!context.IsObject()))
 			return GetPrototypeField(context, field, true, debugInfo);
 
 		Object::Ptr object = context;