Browse Source

Start using explicit operator bool. Fixed some bugs

Panagiotis Christopoulos Charitos 5 years ago
parent
commit
6f2a5affa7

+ 2 - 2
src/anki/Config.h.cmake

@@ -146,8 +146,8 @@
 
 // Some compiler attributes
 #if ANKI_COMPILER_GCC_COMPATIBLE
-#	define ANKI_LIKELY(x) __builtin_expect((x), 1)
-#	define ANKI_UNLIKELY(x) __builtin_expect((x), 0)
+#	define ANKI_LIKELY(x) __builtin_expect(!!(x), 1)
+#	define ANKI_UNLIKELY(x) __builtin_expect(!!(x), 0)
 #	define ANKI_RESTRICT __restrict
 #	define ANKI_USE_RESULT __attribute__((warn_unused_result))
 #	define ANKI_FORCE_INLINE __attribute__((always_inline))

+ 1 - 1
src/anki/core/CoreTracer.cpp

@@ -223,7 +223,7 @@ void CoreTracer::gatherCounters(ThreadWorkItem& item)
 		else
 		{
 			// Merge
-			mergedCounters.getBack().m_value += item.m_counters[i].m_name;
+			mergedCounters.getBack().m_value += item.m_counters[i].m_value;
 		}
 	}
 	ANKI_ASSERT(mergedCounters.getSize() > 0 && mergedCounters.getSize() <= item.m_counters.getSize());

+ 1 - 1
src/anki/core/StagingGpuMemoryManager.h

@@ -41,7 +41,7 @@ public:
 
 	~StagingGpuMemoryToken() = default;
 
-	operator Bool() const
+	explicit operator Bool() const
 	{
 		return m_range != 0;
 	}

+ 1 - 1
src/anki/gr/utils/ClassGpuAllocator.h

@@ -53,7 +53,7 @@ public:
 	ClassGpuAllocatorMemory* m_memory = nullptr;
 	PtrSize m_offset = 0; ///< Relative offset inside m_memory
 
-	operator Bool() const
+	explicit operator Bool() const
 	{
 		return m_memory != nullptr;
 	}

+ 1 - 1
src/anki/gr/utils/StackGpuAllocator.h

@@ -50,7 +50,7 @@ public:
 	StackGpuAllocatorMemory* m_memory = nullptr;
 	PtrSize m_offset = 0;
 
-	operator Bool() const
+	explicit operator Bool() const
 	{
 		return m_memory != nullptr;
 	}

+ 1 - 1
src/anki/gr/vulkan/GpuMemoryManager.h

@@ -23,7 +23,7 @@ public:
 	VkDeviceMemory m_memory = VK_NULL_HANDLE;
 	PtrSize m_offset = MAX_PTR_SIZE;
 
-	operator Bool() const
+	explicit operator Bool() const
 	{
 		return m_memory != VK_NULL_HANDLE && m_offset < MAX_PTR_SIZE && m_memTypeIdx < MAX_U8;
 	}

+ 1 - 1
src/anki/gr/vulkan/QueryFactory.cpp

@@ -73,7 +73,7 @@ Error QueryFactory::newQuery(MicroQuery& handle)
 		}
 	}
 
-	ANKI_ASSERT(handle == true);
+	ANKI_ASSERT(!!handle);
 	return Error::NONE;
 }
 

+ 1 - 1
src/anki/gr/vulkan/QueryFactory.h

@@ -39,7 +39,7 @@ public:
 		return m_queryIndex;
 	}
 
-	operator Bool() const
+	explicit operator Bool() const
 	{
 		return m_pool != VK_NULL_HANDLE;
 	}

+ 1 - 1
src/anki/resource/MaterialResource.h

@@ -311,7 +311,7 @@ public:
 
 	Bool hasTessellation() const
 	{
-		return m_prog;
+		return !!(m_prog->getStages() & (ShaderTypeBit::TESSELLATION_CONTROL | ShaderTypeBit::TESSELLATION_EVALUATION));
 	}
 
 	Bool isForwardShading() const

+ 31 - 31
src/anki/script/Scene.cpp

@@ -62,7 +62,7 @@ static EventManager* getEventManager(lua_State* l)
 using WeakArraySceneNodePtr = WeakArray<SceneNode*>;
 
 LuaUserDataTypeInfo luaUserDataTypeInfoWeakArraySceneNodePtr = {
-	4809158641728402513, "WeakArraySceneNodePtr", LuaUserData::computeSizeForGarbageCollected<WeakArraySceneNodePtr>(),
+	-2441124622021862484, "WeakArraySceneNodePtr", LuaUserData::computeSizeForGarbageCollected<WeakArraySceneNodePtr>(),
 	nullptr, nullptr};
 
 template<>
@@ -187,7 +187,7 @@ static inline void wrapWeakArraySceneNodePtr(lua_State* l)
 	lua_settop(l, 0);
 }
 
-LuaUserDataTypeInfo luaUserDataTypeInfoMoveComponent = {-2944793417571201988, "MoveComponent",
+LuaUserDataTypeInfo luaUserDataTypeInfoMoveComponent = {-7419644190497561468, "MoveComponent",
 														LuaUserData::computeSizeForGarbageCollected<MoveComponent>(),
 														nullptr, nullptr};
 
@@ -609,7 +609,7 @@ static inline void wrapMoveComponent(lua_State* l)
 	lua_settop(l, 0);
 }
 
-LuaUserDataTypeInfo luaUserDataTypeInfoLightComponent = {-5929610182624634661, "LightComponent",
+LuaUserDataTypeInfo luaUserDataTypeInfoLightComponent = {3108888612844103952, "LightComponent",
 														 LuaUserData::computeSizeForGarbageCollected<LightComponent>(),
 														 nullptr, nullptr};
 
@@ -1209,7 +1209,7 @@ static inline void wrapLightComponent(lua_State* l)
 	lua_settop(l, 0);
 }
 
-LuaUserDataTypeInfo luaUserDataTypeInfoDecalComponent = {-4163588209729645620, "DecalComponent",
+LuaUserDataTypeInfo luaUserDataTypeInfoDecalComponent = {1291169002255374933, "DecalComponent",
 														 LuaUserData::computeSizeForGarbageCollected<DecalComponent>(),
 														 nullptr, nullptr};
 
@@ -1271,7 +1271,7 @@ static inline int pwrapDecalComponentsetDiffuseDecal(lua_State* l)
 		return -1;
 	}
 
-	lua_pushnumber(l, lua_Number(ret));
+	lua_pushnumber(l, lua_Number(!!ret));
 
 	return 1;
 }
@@ -1341,7 +1341,7 @@ static inline int pwrapDecalComponentsetSpecularRoughnessDecal(lua_State* l)
 		return -1;
 	}
 
-	lua_pushnumber(l, lua_Number(ret));
+	lua_pushnumber(l, lua_Number(!!ret));
 
 	return 1;
 }
@@ -1431,7 +1431,7 @@ static inline void wrapDecalComponent(lua_State* l)
 }
 
 LuaUserDataTypeInfo luaUserDataTypeInfoLensFlareComponent = {
-	3485175800586425724, "LensFlareComponent", LuaUserData::computeSizeForGarbageCollected<LensFlareComponent>(),
+	-5589129522631427243, "LensFlareComponent", LuaUserData::computeSizeForGarbageCollected<LensFlareComponent>(),
 	nullptr, nullptr};
 
 template<>
@@ -1554,7 +1554,7 @@ static inline void wrapLensFlareComponent(lua_State* l)
 }
 
 LuaUserDataTypeInfo luaUserDataTypeInfoTriggerComponent = {
-	2349517582012766186, "TriggerComponent", LuaUserData::computeSizeForGarbageCollected<TriggerComponent>(), nullptr,
+	-2242991378023808398, "TriggerComponent", LuaUserData::computeSizeForGarbageCollected<TriggerComponent>(), nullptr,
 	nullptr};
 
 template<>
@@ -1623,7 +1623,7 @@ static inline void wrapTriggerComponent(lua_State* l)
 }
 
 LuaUserDataTypeInfo luaUserDataTypeInfoFogDensityComponent = {
-	2494662987971482753, "FogDensityComponent", LuaUserData::computeSizeForGarbageCollected<FogDensityComponent>(),
+	392554151834897438, "FogDensityComponent", LuaUserData::computeSizeForGarbageCollected<FogDensityComponent>(),
 	nullptr, nullptr};
 
 template<>
@@ -1848,7 +1848,7 @@ static inline void wrapFogDensityComponent(lua_State* l)
 }
 
 LuaUserDataTypeInfo luaUserDataTypeInfoFrustumComponent = {
-	-6751360472098617278, "FrustumComponent", LuaUserData::computeSizeForGarbageCollected<FrustumComponent>(), nullptr,
+	7182008102835508526, "FrustumComponent", LuaUserData::computeSizeForGarbageCollected<FrustumComponent>(), nullptr,
 	nullptr};
 
 template<>
@@ -2034,7 +2034,7 @@ static inline void wrapFrustumComponent(lua_State* l)
 }
 
 LuaUserDataTypeInfo luaUserDataTypeInfoGlobalIlluminationProbeComponent = {
-	8593813226099276965, "GlobalIlluminationProbeComponent",
+	-6350545502588513051, "GlobalIlluminationProbeComponent",
 	LuaUserData::computeSizeForGarbageCollected<GlobalIlluminationProbeComponent>(), nullptr, nullptr};
 
 template<>
@@ -2411,7 +2411,7 @@ static inline void wrapGlobalIlluminationProbeComponent(lua_State* l)
 }
 
 LuaUserDataTypeInfo luaUserDataTypeInfoSceneNode = {
-	7067551561970394862, "SceneNode", LuaUserData::computeSizeForGarbageCollected<SceneNode>(), nullptr, nullptr};
+	-7469182284925083427, "SceneNode", LuaUserData::computeSizeForGarbageCollected<SceneNode>(), nullptr, nullptr};
 
 template<>
 const LuaUserDataTypeInfo& LuaUserData::getDataTypeInfoFor<SceneNode>()
@@ -3019,7 +3019,7 @@ static inline void wrapSceneNode(lua_State* l)
 }
 
 LuaUserDataTypeInfo luaUserDataTypeInfoModelNode = {
-	-8349908074325239506, "ModelNode", LuaUserData::computeSizeForGarbageCollected<ModelNode>(), nullptr, nullptr};
+	1550727051611601233, "ModelNode", LuaUserData::computeSizeForGarbageCollected<ModelNode>(), nullptr, nullptr};
 
 template<>
 const LuaUserDataTypeInfo& LuaUserData::getDataTypeInfoFor<ModelNode>()
@@ -3085,7 +3085,7 @@ static inline void wrapModelNode(lua_State* l)
 }
 
 LuaUserDataTypeInfo luaUserDataTypeInfoPerspectiveCameraNode = {
-	-4090904124533602581, "PerspectiveCameraNode", LuaUserData::computeSizeForGarbageCollected<PerspectiveCameraNode>(),
+	4336357556756945336, "PerspectiveCameraNode", LuaUserData::computeSizeForGarbageCollected<PerspectiveCameraNode>(),
 	nullptr, nullptr};
 
 template<>
@@ -3151,7 +3151,7 @@ static inline void wrapPerspectiveCameraNode(lua_State* l)
 	lua_settop(l, 0);
 }
 
-LuaUserDataTypeInfo luaUserDataTypeInfoPointLightNode = {8707302266304136892, "PointLightNode",
+LuaUserDataTypeInfo luaUserDataTypeInfoPointLightNode = {1041276040139896217, "PointLightNode",
 														 LuaUserData::computeSizeForGarbageCollected<PointLightNode>(),
 														 nullptr, nullptr};
 
@@ -3250,7 +3250,7 @@ static inline int pwrapPointLightNodeloadLensFlare(lua_State* l)
 		return -1;
 	}
 
-	lua_pushnumber(l, lua_Number(ret));
+	lua_pushnumber(l, lua_Number(!!ret));
 
 	return 1;
 }
@@ -3277,7 +3277,7 @@ static inline void wrapPointLightNode(lua_State* l)
 	lua_settop(l, 0);
 }
 
-LuaUserDataTypeInfo luaUserDataTypeInfoSpotLightNode = {-7222077148830080090, "SpotLightNode",
+LuaUserDataTypeInfo luaUserDataTypeInfoSpotLightNode = {1618463592957166120, "SpotLightNode",
 														LuaUserData::computeSizeForGarbageCollected<SpotLightNode>(),
 														nullptr, nullptr};
 
@@ -3345,7 +3345,7 @@ static inline void wrapSpotLightNode(lua_State* l)
 }
 
 LuaUserDataTypeInfo luaUserDataTypeInfoDirectionalLightNode = {
-	-6666005605485382239, "DirectionalLightNode", LuaUserData::computeSizeForGarbageCollected<DirectionalLightNode>(),
+	-8374966293987052340, "DirectionalLightNode", LuaUserData::computeSizeForGarbageCollected<DirectionalLightNode>(),
 	nullptr, nullptr};
 
 template<>
@@ -3412,7 +3412,7 @@ static inline void wrapDirectionalLightNode(lua_State* l)
 }
 
 LuaUserDataTypeInfo luaUserDataTypeInfoStaticCollisionNode = {
-	-7978287687231391720, "StaticCollisionNode", LuaUserData::computeSizeForGarbageCollected<StaticCollisionNode>(),
+	2715940926837664885, "StaticCollisionNode", LuaUserData::computeSizeForGarbageCollected<StaticCollisionNode>(),
 	nullptr, nullptr};
 
 template<>
@@ -3479,7 +3479,7 @@ static inline void wrapStaticCollisionNode(lua_State* l)
 }
 
 LuaUserDataTypeInfo luaUserDataTypeInfoParticleEmitterNode = {
-	-5784093545999626496, "ParticleEmitterNode", LuaUserData::computeSizeForGarbageCollected<ParticleEmitterNode>(),
+	7384430295490764399, "ParticleEmitterNode", LuaUserData::computeSizeForGarbageCollected<ParticleEmitterNode>(),
 	nullptr, nullptr};
 
 template<>
@@ -3546,7 +3546,7 @@ static inline void wrapParticleEmitterNode(lua_State* l)
 }
 
 LuaUserDataTypeInfo luaUserDataTypeInfoGpuParticleEmitterNode = {
-	6007656008303009875, "GpuParticleEmitterNode",
+	-7315973565018991013, "GpuParticleEmitterNode",
 	LuaUserData::computeSizeForGarbageCollected<GpuParticleEmitterNode>(), nullptr, nullptr};
 
 template<>
@@ -3613,7 +3613,7 @@ static inline void wrapGpuParticleEmitterNode(lua_State* l)
 }
 
 LuaUserDataTypeInfo luaUserDataTypeInfoReflectionProbeNode = {
-	5703642721641072194, "ReflectionProbeNode", LuaUserData::computeSizeForGarbageCollected<ReflectionProbeNode>(),
+	-8329116766593565158, "ReflectionProbeNode", LuaUserData::computeSizeForGarbageCollected<ReflectionProbeNode>(),
 	nullptr, nullptr};
 
 template<>
@@ -3679,7 +3679,7 @@ static inline void wrapReflectionProbeNode(lua_State* l)
 	lua_settop(l, 0);
 }
 
-LuaUserDataTypeInfo luaUserDataTypeInfoOccluderNode = {-6187789785935092103, "OccluderNode",
+LuaUserDataTypeInfo luaUserDataTypeInfoOccluderNode = {-7280020184797189665, "OccluderNode",
 													   LuaUserData::computeSizeForGarbageCollected<OccluderNode>(),
 													   nullptr, nullptr};
 
@@ -3747,7 +3747,7 @@ static inline void wrapOccluderNode(lua_State* l)
 }
 
 LuaUserDataTypeInfo luaUserDataTypeInfoDecalNode = {
-	6982636593004043135, "DecalNode", LuaUserData::computeSizeForGarbageCollected<DecalNode>(), nullptr, nullptr};
+	-8170576609024446608, "DecalNode", LuaUserData::computeSizeForGarbageCollected<DecalNode>(), nullptr, nullptr};
 
 template<>
 const LuaUserDataTypeInfo& LuaUserData::getDataTypeInfoFor<DecalNode>()
@@ -3813,7 +3813,7 @@ static inline void wrapDecalNode(lua_State* l)
 }
 
 LuaUserDataTypeInfo luaUserDataTypeInfoTriggerNode = {
-	2512901559271188276, "TriggerNode", LuaUserData::computeSizeForGarbageCollected<TriggerNode>(), nullptr, nullptr};
+	-3086882463183440318, "TriggerNode", LuaUserData::computeSizeForGarbageCollected<TriggerNode>(), nullptr, nullptr};
 
 template<>
 const LuaUserDataTypeInfo& LuaUserData::getDataTypeInfoFor<TriggerNode>()
@@ -3878,7 +3878,7 @@ static inline void wrapTriggerNode(lua_State* l)
 	lua_settop(l, 0);
 }
 
-LuaUserDataTypeInfo luaUserDataTypeInfoFogDensityNode = {5130479292739784925, "FogDensityNode",
+LuaUserDataTypeInfo luaUserDataTypeInfoFogDensityNode = {-8876559879318375617, "FogDensityNode",
 														 LuaUserData::computeSizeForGarbageCollected<FogDensityNode>(),
 														 nullptr, nullptr};
 
@@ -3946,7 +3946,7 @@ static inline void wrapFogDensityNode(lua_State* l)
 }
 
 LuaUserDataTypeInfo luaUserDataTypeInfoGlobalIlluminationProbeNode = {
-	-8712129074094540189, "GlobalIlluminationProbeNode",
+	5041818919735575380, "GlobalIlluminationProbeNode",
 	LuaUserData::computeSizeForGarbageCollected<GlobalIlluminationProbeNode>(), nullptr, nullptr};
 
 template<>
@@ -4013,7 +4013,7 @@ static inline void wrapGlobalIlluminationProbeNode(lua_State* l)
 }
 
 LuaUserDataTypeInfo luaUserDataTypeInfoSceneGraph = {
-	8889763873203372334, "SceneGraph", LuaUserData::computeSizeForGarbageCollected<SceneGraph>(), nullptr, nullptr};
+	-8935190560851135504, "SceneGraph", LuaUserData::computeSizeForGarbageCollected<SceneGraph>(), nullptr, nullptr};
 
 template<>
 const LuaUserDataTypeInfo& LuaUserData::getDataTypeInfoFor<SceneGraph>()
@@ -4963,7 +4963,7 @@ static inline void wrapSceneGraph(lua_State* l)
 	lua_settop(l, 0);
 }
 
-LuaUserDataTypeInfo luaUserDataTypeInfoEvent = {2647322402732904700, "Event",
+LuaUserDataTypeInfo luaUserDataTypeInfoEvent = {3243578489496433103, "Event",
 												LuaUserData::computeSizeForGarbageCollected<Event>(), nullptr, nullptr};
 
 template<>
@@ -5032,7 +5032,7 @@ static inline void wrapEvent(lua_State* l)
 }
 
 LuaUserDataTypeInfo luaUserDataTypeInfoLightEvent = {
-	2742841834679080733, "LightEvent", LuaUserData::computeSizeForGarbageCollected<LightEvent>(), nullptr, nullptr};
+	5568228196412666234, "LightEvent", LuaUserData::computeSizeForGarbageCollected<LightEvent>(), nullptr, nullptr};
 
 template<>
 const LuaUserDataTypeInfo& LuaUserData::getDataTypeInfoFor<LightEvent>()
@@ -5156,7 +5156,7 @@ static inline void wrapLightEvent(lua_State* l)
 	lua_settop(l, 0);
 }
 
-LuaUserDataTypeInfo luaUserDataTypeInfoEventManager = {-3700681373112918438, "EventManager",
+LuaUserDataTypeInfo luaUserDataTypeInfoEventManager = {-8139401118670242711, "EventManager",
 													   LuaUserData::computeSizeForGarbageCollected<EventManager>(),
 													   nullptr, nullptr};
 

+ 1 - 1
src/anki/script/lua_glue_gen.py

@@ -138,7 +138,7 @@ def ret(ret_el):
         ident(-1)
         wglue("}")
         wglue("")
-        wglue("lua_pushnumber(l, lua_Number(ret));")
+        wglue("lua_pushnumber(l, lua_Number(!!ret));")
     else:
         if is_ptr or is_ref:
             wglue("voidp = lua_newuserdata(l, sizeof(LuaUserData));")

+ 1 - 1
src/anki/util/BitSet.h

@@ -139,7 +139,7 @@ public:
 		return !getAny();
 	}
 
-	operator Bool() const
+	explicit operator Bool() const
 	{
 		return getAny();
 	}

+ 1 - 1
src/anki/util/Ptr.h

@@ -54,7 +54,7 @@ public:
 
 	/// @name Compare operators
 	/// @{
-	operator Bool() const
+	explicit operator Bool() const
 	{
 		return isCreated();
 	}

+ 1 - 1
src/anki/util/StdTypes.h

@@ -199,7 +199,7 @@ public:
 	}
 
 	/// Check if it is an error.
-	operator Bool() const
+	explicit operator Bool() const
 	{
 		return ANKI_UNLIKELY(m_code != NONE);
 	}

+ 2 - 2
src/anki/util/String.h

@@ -85,7 +85,7 @@ public:
 	}
 
 	/// Return true if the string is initialized.
-	operator Bool() const
+	explicit operator Bool() const
 	{
 		return !isEmpty();
 	}
@@ -328,7 +328,7 @@ public:
 		return m_data[pos];
 	}
 
-	operator Bool() const
+	explicit operator Bool() const
 	{
 		return !isEmpty();
 	}

+ 1 - 1
src/anki/util/StringList.h

@@ -33,7 +33,7 @@ public:
 	// Use the base constructors
 	using Base::Base;
 
-	operator Bool() const
+	explicit operator Bool() const
 	{
 		return !Base::isEmpty();
 	}

+ 1 - 1
src/anki/util/Xml.h

@@ -36,7 +36,7 @@ public:
 	}
 
 	/// If element has something return true
-	operator Bool() const
+	explicit operator Bool() const
 	{
 		return m_el != nullptr;
 	}