Browse Source

Variant: Consistent naming and avoid warning C4324 in Visual Studio (see #44).

Michael Ragazzon 6 years ago
parent
commit
a60ff4a78f
3 changed files with 32 additions and 33 deletions
  1. 5 5
      Include/RmlUi/Core/Variant.h
  2. 3 3
      Include/RmlUi/Core/Variant.inl
  3. 24 25
      Source/Core/Variant.cpp

+ 5 - 5
Include/RmlUi/Core/Variant.h

@@ -49,8 +49,8 @@ namespace Core {
 class RMLUICORE_API Variant
 class RMLUICORE_API Variant
 {
 {
 public:
 public:
-	/// Type of data stored in the variant.
-	enum Type
+	/// Type of data stored in the variant. We use size_t as base to avoid 'padding due to alignment specifier' warning.
+	enum Type : size_t
 	{
 	{
 		NONE = '-',
 		NONE = '-',
 		BYTE = 'b',
 		BYTE = 'b',
@@ -65,11 +65,11 @@ public:
 		COLOURF = 'g',
 		COLOURF = 'g',
 		COLOURB = 'h',
 		COLOURB = 'h',
 		SCRIPTINTERFACE = 'p',
 		SCRIPTINTERFACE = 'p',
-		TRANSFORMREF = 't',
+		TRANSFORMPTR = 't',
 		TRANSITIONLIST = 'T',
 		TRANSITIONLIST = 'T',
 		ANIMATIONLIST = 'A',
 		ANIMATIONLIST = 'A',
-		DECORATORLIST = 'D',
-		FONTEFFECTLISTPTR = 'F',
+		DECORATORSPTR = 'D',
+		FONTEFFECTSPTR = 'F',
 		VOIDPTR = '*',
 		VOIDPTR = '*',
 	};
 	};
 
 

+ 3 - 3
Include/RmlUi/Core/Variant.inl

@@ -106,7 +106,7 @@ bool Variant::GetInto(T& value) const
 		return TypeConverter< void*, T >::Convert(*(void**)data, value);
 		return TypeConverter< void*, T >::Convert(*(void**)data, value);
 		break;
 		break;
 
 
-	case TRANSFORMREF:
+	case TRANSFORMPTR:
 		return TypeConverter< TransformPtr, T >::Convert(*(TransformPtr*)data, value);
 		return TypeConverter< TransformPtr, T >::Convert(*(TransformPtr*)data, value);
 		break;
 		break;
 
 
@@ -118,11 +118,11 @@ bool Variant::GetInto(T& value) const
 		return TypeConverter< AnimationList, T >::Convert(*(AnimationList*)data, value);
 		return TypeConverter< AnimationList, T >::Convert(*(AnimationList*)data, value);
 		break;
 		break;
 
 
-	case DECORATORLIST:
+	case DECORATORSPTR:
 		return TypeConverter< DecoratorsPtr, T >::Convert(*(DecoratorsPtr*)data, value);
 		return TypeConverter< DecoratorsPtr, T >::Convert(*(DecoratorsPtr*)data, value);
 		break;
 		break;
 
 
-	case FONTEFFECTLISTPTR:
+	case FONTEFFECTSPTR:
 		return TypeConverter< FontEffectsPtr, T >::Convert(*(FontEffectsPtr*)data, value);
 		return TypeConverter< FontEffectsPtr, T >::Convert(*(FontEffectsPtr*)data, value);
 		break;
 		break;
 	case NONE:
 	case NONE:

+ 24 - 25
Source/Core/Variant.cpp

@@ -73,7 +73,7 @@ void Variant::Clear()
 			string->~String();
 			string->~String();
 		}
 		}
 		break;
 		break;
-		case TRANSFORMREF:
+		case TRANSFORMPTR:
 		{
 		{
 			// Clean up the transform.
 			// Clean up the transform.
 			TransformPtr* transform = (TransformPtr*)data;
 			TransformPtr* transform = (TransformPtr*)data;
@@ -94,13 +94,13 @@ void Variant::Clear()
 			animation_list->~AnimationList();
 			animation_list->~AnimationList();
 		}
 		}
 		break;
 		break;
-		case DECORATORLIST:
+		case DECORATORSPTR:
 		{
 		{
 			DecoratorsPtr* decorators = (DecoratorsPtr*)data;
 			DecoratorsPtr* decorators = (DecoratorsPtr*)data;
 			decorators->~DecoratorsPtr();
 			decorators->~DecoratorsPtr();
 		}
 		}
 		break;
 		break;
-		case FONTEFFECTLISTPTR:
+		case FONTEFFECTSPTR:
 		{
 		{
 			FontEffectsPtr* font_effects = (FontEffectsPtr*)data;
 			FontEffectsPtr* font_effects = (FontEffectsPtr*)data;
 			font_effects->~shared_ptr();
 			font_effects->~shared_ptr();
@@ -128,7 +128,7 @@ void Variant::Set(const Variant& copy)
 		Set(*(String*)copy.data);
 		Set(*(String*)copy.data);
 		break;
 		break;
 
 
-	case TRANSFORMREF:
+	case TRANSFORMPTR:
 		Set(*(TransformPtr*)copy.data);
 		Set(*(TransformPtr*)copy.data);
 		break;
 		break;
 
 
@@ -140,11 +140,11 @@ void Variant::Set(const Variant& copy)
 		Set(*(AnimationList*)copy.data);
 		Set(*(AnimationList*)copy.data);
 		break;
 		break;
 
 
-	case DECORATORLIST:
+	case DECORATORSPTR:
 		Set(*(DecoratorsPtr*)copy.data);
 		Set(*(DecoratorsPtr*)copy.data);
 		break;
 		break;
 
 
-	case FONTEFFECTLISTPTR:
+	case FONTEFFECTSPTR:
 		Set(*(FontEffectsPtr*)copy.data);
 		Set(*(FontEffectsPtr*)copy.data);
 		break;
 		break;
 
 
@@ -164,7 +164,7 @@ void Variant::Set(Variant&& other)
 		Set(std::move(*(String*)other.data));
 		Set(std::move(*(String*)other.data));
 		break;
 		break;
 
 
-	case TRANSFORMREF:
+	case TRANSFORMPTR:
 		Set(std::move(*(TransformPtr*)other.data));
 		Set(std::move(*(TransformPtr*)other.data));
 		break;
 		break;
 
 
@@ -176,15 +176,14 @@ void Variant::Set(Variant&& other)
 		Set(std::move(*(AnimationList*)other.data));
 		Set(std::move(*(AnimationList*)other.data));
 		break;
 		break;
 
 
-	case DECORATORLIST:
+	case DECORATORSPTR:
 		Set(std::move(*(DecoratorsPtr*)other.data));
 		Set(std::move(*(DecoratorsPtr*)other.data));
 		break;
 		break;
 
 
-	case FONTEFFECTLISTPTR:
+	case FONTEFFECTSPTR:
 		Set(std::move(*(FontEffectsPtr*)other.data));
 		Set(std::move(*(FontEffectsPtr*)other.data));
 		break;
 		break;
 
 
-
 	default:
 	default:
 		memcpy(data, other.data, LOCAL_DATA_SIZE);
 		memcpy(data, other.data, LOCAL_DATA_SIZE);
 		type = other.type;
 		type = other.type;
@@ -298,25 +297,25 @@ void Variant::Set(String&& value)
 
 
 void Variant::Set(const TransformPtr& value)
 void Variant::Set(const TransformPtr& value)
 {
 {
-	if (type == TRANSFORMREF)
+	if (type == TRANSFORMPTR)
 	{
 	{
 		SET_VARIANT(TransformPtr);
 		SET_VARIANT(TransformPtr);
 	}
 	}
 	else
 	else
 	{
 	{
-		type = TRANSFORMREF;
+		type = TRANSFORMPTR;
 		new(data) TransformPtr(value);
 		new(data) TransformPtr(value);
 	}
 	}
 }
 }
 void Variant::Set(TransformPtr&& value)
 void Variant::Set(TransformPtr&& value)
 {
 {
-	if (type == TRANSFORMREF)
+	if (type == TRANSFORMPTR)
 	{
 	{
 		(*(TransformPtr*)data) = std::move(value);
 		(*(TransformPtr*)data) = std::move(value);
 	}
 	}
 	else
 	else
 	{
 	{
-		type = TRANSFORMREF;
+		type = TRANSFORMPTR;
 		new(data) TransformPtr(std::move(value));
 		new(data) TransformPtr(std::move(value));
 	}
 	}
 }
 }
@@ -373,49 +372,49 @@ void Variant::Set(AnimationList&& value)
 
 
 void Variant::Set(const DecoratorsPtr& value)
 void Variant::Set(const DecoratorsPtr& value)
 {
 {
-	if (type == DECORATORLIST)
+	if (type == DECORATORSPTR)
 	{
 	{
 		*(DecoratorsPtr*)data = value;
 		*(DecoratorsPtr*)data = value;
 	}
 	}
 	else
 	else
 	{
 	{
-		type = DECORATORLIST;
+		type = DECORATORSPTR;
 		new(data) DecoratorsPtr(value);
 		new(data) DecoratorsPtr(value);
 	}
 	}
 }
 }
 void Variant::Set(DecoratorsPtr&& value)
 void Variant::Set(DecoratorsPtr&& value)
 {
 {
-	if (type == DECORATORLIST)
+	if (type == DECORATORSPTR)
 	{
 	{
 		(*(DecoratorsPtr*)data) = std::move(value);
 		(*(DecoratorsPtr*)data) = std::move(value);
 	}
 	}
 	else
 	else
 	{
 	{
-		type = DECORATORLIST;
+		type = DECORATORSPTR;
 		new(data) DecoratorsPtr(std::move(value));
 		new(data) DecoratorsPtr(std::move(value));
 	}
 	}
 }
 }
 void Variant::Set(const FontEffectsPtr& value)
 void Variant::Set(const FontEffectsPtr& value)
 {
 {
-	if (type == FONTEFFECTLISTPTR)
+	if (type == FONTEFFECTSPTR)
 	{
 	{
 		*(FontEffectsPtr*)data = value;
 		*(FontEffectsPtr*)data = value;
 	}
 	}
 	else
 	else
 	{
 	{
-		type = FONTEFFECTLISTPTR;
+		type = FONTEFFECTSPTR;
 		new(data) FontEffectsPtr(value);
 		new(data) FontEffectsPtr(value);
 	}
 	}
 }
 }
 void Variant::Set(FontEffectsPtr&& value)
 void Variant::Set(FontEffectsPtr&& value)
 {
 {
-	if (type == FONTEFFECTLISTPTR)
+	if (type == FONTEFFECTSPTR)
 	{
 	{
 		(*(FontEffectsPtr*)data) = std::move(value);
 		(*(FontEffectsPtr*)data) = std::move(value);
 	}
 	}
 	else
 	else
 	{
 	{
-		type = FONTEFFECTLISTPTR;
+		type = FONTEFFECTSPTR;
 		new(data) FontEffectsPtr(std::move(value));
 		new(data) FontEffectsPtr(std::move(value));
 	}
 	}
 }
 }
@@ -471,15 +470,15 @@ bool Variant::operator==(const Variant & other) const
 		return DEFAULT_VARIANT_COMPARE(ScriptInterface*);
 		return DEFAULT_VARIANT_COMPARE(ScriptInterface*);
 	case VOIDPTR:
 	case VOIDPTR:
 		return DEFAULT_VARIANT_COMPARE(void*);
 		return DEFAULT_VARIANT_COMPARE(void*);
-	case TRANSFORMREF:
+	case TRANSFORMPTR:
 		return DEFAULT_VARIANT_COMPARE(TransformPtr);
 		return DEFAULT_VARIANT_COMPARE(TransformPtr);
 	case TRANSITIONLIST:
 	case TRANSITIONLIST:
 		return DEFAULT_VARIANT_COMPARE(TransitionList);
 		return DEFAULT_VARIANT_COMPARE(TransitionList);
 	case ANIMATIONLIST:
 	case ANIMATIONLIST:
 		return DEFAULT_VARIANT_COMPARE(AnimationList);
 		return DEFAULT_VARIANT_COMPARE(AnimationList);
-	case DECORATORLIST:
+	case DECORATORSPTR:
 		return DEFAULT_VARIANT_COMPARE(DecoratorsPtr);
 		return DEFAULT_VARIANT_COMPARE(DecoratorsPtr);
-	case FONTEFFECTLISTPTR:
+	case FONTEFFECTSPTR:
 		return DEFAULT_VARIANT_COMPARE(FontEffectsPtr);
 		return DEFAULT_VARIANT_COMPARE(FontEffectsPtr);
 	case NONE:
 	case NONE:
 		return true;
 		return true;