summaryrefslogtreecommitdiffstats
path: root/core/variant
diff options
context:
space:
mode:
authorThaddeus Crews <repiteo@outlook.com>2024-03-28 09:56:02 -0500
committerThaddeus Crews <repiteo@outlook.com>2024-04-04 08:54:11 -0500
commitb0cda1f85f4af136db64edfdc6a7ab279bdab2f4 (patch)
tree337d0c8866bb558ec3f2a2a3830b6421d7cfcef1 /core/variant
parent7a42afbba050822a66ea5b4c620f6db1b98c49af (diff)
downloadredot-engine-b0cda1f85f4af136db64edfdc6a7ab279bdab2f4.tar.gz
Core: Use fixed-width integer types in Variant
Diffstat (limited to 'core/variant')
-rw-r--r--core/variant/variant.cpp119
-rw-r--r--core/variant/variant.h37
2 files changed, 46 insertions, 110 deletions
diff --git a/core/variant/variant.cpp b/core/variant/variant.cpp
index 89c22c05dd..155a5b2781 100644
--- a/core/variant/variant.cpp
+++ b/core/variant/variant.cpp
@@ -1417,7 +1417,7 @@ void Variant::_clear_internal() {
}
}
-Variant::operator signed int() const {
+Variant::operator int64_t() const {
switch (type) {
case NIL:
return 0;
@@ -1435,7 +1435,7 @@ Variant::operator signed int() const {
}
}
-Variant::operator unsigned int() const {
+Variant::operator int32_t() const {
switch (type) {
case NIL:
return 0;
@@ -1453,7 +1453,7 @@ Variant::operator unsigned int() const {
}
}
-Variant::operator int64_t() const {
+Variant::operator int16_t() const {
switch (type) {
case NIL:
return 0;
@@ -1471,7 +1471,7 @@ Variant::operator int64_t() const {
}
}
-Variant::operator uint64_t() const {
+Variant::operator int8_t() const {
switch (type) {
case NIL:
return 0;
@@ -1489,18 +1489,7 @@ Variant::operator uint64_t() const {
}
}
-Variant::operator ObjectID() const {
- if (type == INT) {
- return ObjectID(_data._int);
- } else if (type == OBJECT) {
- return _get_obj().id;
- } else {
- return ObjectID();
- }
-}
-
-#ifdef NEED_LONG_INT
-Variant::operator signed long() const {
+Variant::operator uint64_t() const {
switch (type) {
case NIL:
return 0;
@@ -1516,11 +1505,9 @@ Variant::operator signed long() const {
return 0;
}
}
-
- return 0;
}
-Variant::operator unsigned long() const {
+Variant::operator uint32_t() const {
switch (type) {
case NIL:
return 0;
@@ -1536,12 +1523,9 @@ Variant::operator unsigned long() const {
return 0;
}
}
-
- return 0;
}
-#endif
-Variant::operator signed short() const {
+Variant::operator uint16_t() const {
switch (type) {
case NIL:
return 0;
@@ -1559,7 +1543,7 @@ Variant::operator signed short() const {
}
}
-Variant::operator unsigned short() const {
+Variant::operator uint8_t() const {
switch (type) {
case NIL:
return 0;
@@ -1577,44 +1561,18 @@ Variant::operator unsigned short() const {
}
}
-Variant::operator signed char() const {
- switch (type) {
- case NIL:
- return 0;
- case BOOL:
- return _data._bool ? 1 : 0;
- case INT:
- return _data._int;
- case FLOAT:
- return _data._float;
- case STRING:
- return operator String().to_int();
- default: {
- return 0;
- }
- }
-}
-
-Variant::operator unsigned char() const {
- switch (type) {
- case NIL:
- return 0;
- case BOOL:
- return _data._bool ? 1 : 0;
- case INT:
- return _data._int;
- case FLOAT:
- return _data._float;
- case STRING:
- return operator String().to_int();
- default: {
- return 0;
- }
+Variant::operator ObjectID() const {
+ if (type == INT) {
+ return ObjectID(_data._int);
+ } else if (type == OBJECT) {
+ return _get_obj().id;
+ } else {
+ return ObjectID();
}
}
Variant::operator char32_t() const {
- return operator unsigned int();
+ return operator uint32_t();
}
Variant::operator float() const {
@@ -2420,57 +2378,44 @@ Variant::Variant(bool p_bool) {
_data._bool = p_bool;
}
-Variant::Variant(signed int p_int) {
+Variant::Variant(int64_t p_int64) {
type = INT;
- _data._int = p_int;
+ _data._int = p_int64;
}
-Variant::Variant(unsigned int p_int) {
+Variant::Variant(int32_t p_int32) {
type = INT;
- _data._int = p_int;
+ _data._int = p_int32;
}
-#ifdef NEED_LONG_INT
-
-Variant::Variant(signed long p_int) {
- type = INT;
- _data._int = p_int;
-}
-
-Variant::Variant(unsigned long p_int) {
- type = INT;
- _data._int = p_int;
-}
-#endif
-
-Variant::Variant(int64_t p_int) {
+Variant::Variant(int16_t p_int16) {
type = INT;
- _data._int = p_int;
+ _data._int = p_int16;
}
-Variant::Variant(uint64_t p_int) {
+Variant::Variant(int8_t p_int8) {
type = INT;
- _data._int = p_int;
+ _data._int = p_int8;
}
-Variant::Variant(signed short p_short) {
+Variant::Variant(uint64_t p_uint64) {
type = INT;
- _data._int = p_short;
+ _data._int = p_uint64;
}
-Variant::Variant(unsigned short p_short) {
+Variant::Variant(uint32_t p_uint32) {
type = INT;
- _data._int = p_short;
+ _data._int = p_uint32;
}
-Variant::Variant(signed char p_char) {
+Variant::Variant(uint16_t p_uint16) {
type = INT;
- _data._int = p_char;
+ _data._int = p_uint16;
}
-Variant::Variant(unsigned char p_char) {
+Variant::Variant(uint8_t p_uint8) {
type = INT;
- _data._int = p_char;
+ _data._int = p_uint8;
}
Variant::Variant(float p_float) {
diff --git a/core/variant/variant.h b/core/variant/variant.h
index e8eec8171b..fc4030ac5a 100644
--- a/core/variant/variant.h
+++ b/core/variant/variant.h
@@ -355,19 +355,14 @@ public:
const Variant &operator[](const Variant &p_key) const = delete;
operator bool() const;
- operator signed int() const;
- operator unsigned int() const; // this is the real one
- operator signed short() const;
- operator unsigned short() const;
- operator signed char() const;
- operator unsigned char() const;
- //operator long unsigned int() const;
operator int64_t() const;
+ operator int32_t() const;
+ operator int16_t() const;
+ operator int8_t() const;
operator uint64_t() const;
-#ifdef NEED_LONG_INT
- operator signed long() const;
- operator unsigned long() const;
-#endif
+ operator uint32_t() const;
+ operator uint16_t() const;
+ operator uint8_t() const;
operator ObjectID() const;
@@ -430,18 +425,14 @@ public:
Object *get_validated_object_with_check(bool &r_previously_freed) const;
Variant(bool p_bool);
- Variant(signed int p_int); // real one
- Variant(unsigned int p_int);
-#ifdef NEED_LONG_INT
- Variant(signed long p_long); // real one
- Variant(unsigned long p_long);
-#endif
- Variant(signed short p_short); // real one
- Variant(unsigned short p_short);
- Variant(signed char p_char); // real one
- Variant(unsigned char p_char);
- Variant(int64_t p_int); // real one
- Variant(uint64_t p_int);
+ Variant(int64_t p_int64);
+ Variant(int32_t p_int32);
+ Variant(int16_t p_int16);
+ Variant(int8_t p_int8);
+ Variant(uint64_t p_uint64);
+ Variant(uint32_t p_uint32);
+ Variant(uint16_t p_uint16);
+ Variant(uint8_t p_uint8);
Variant(float p_float);
Variant(double p_double);
Variant(const ObjectID &p_id);