Core: Use fixed-width integer types in Variant
This commit is contained in:
parent
7a42afbba0
commit
b0cda1f85f
3 changed files with 139 additions and 204 deletions
|
@ -1417,42 +1417,6 @@ void Variant::_clear_internal() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Variant::operator signed int() 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 int() 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 int64_t() const {
|
Variant::operator int64_t() const {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case NIL:
|
case NIL:
|
||||||
|
@ -1471,6 +1435,60 @@ Variant::operator int64_t() const {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Variant::operator int32_t() 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 int16_t() 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 int8_t() 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 uint64_t() const {
|
Variant::operator uint64_t() const {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case NIL:
|
case NIL:
|
||||||
|
@ -1489,6 +1507,60 @@ Variant::operator uint64_t() const {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Variant::operator uint32_t() 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 uint16_t() 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 uint8_t() 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 {
|
Variant::operator ObjectID() const {
|
||||||
if (type == INT) {
|
if (type == INT) {
|
||||||
return ObjectID(_data._int);
|
return ObjectID(_data._int);
|
||||||
|
@ -1499,122 +1571,8 @@ Variant::operator ObjectID() const {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef NEED_LONG_INT
|
|
||||||
Variant::operator signed long() 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
Variant::operator unsigned long() 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Variant::operator signed short() 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 short() 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 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 char32_t() const {
|
Variant::operator char32_t() const {
|
||||||
return operator unsigned int();
|
return operator uint32_t();
|
||||||
}
|
}
|
||||||
|
|
||||||
Variant::operator float() const {
|
Variant::operator float() const {
|
||||||
|
@ -2420,57 +2378,44 @@ Variant::Variant(bool p_bool) {
|
||||||
_data._bool = p_bool;
|
_data._bool = p_bool;
|
||||||
}
|
}
|
||||||
|
|
||||||
Variant::Variant(signed int p_int) {
|
Variant::Variant(int64_t p_int64) {
|
||||||
type = INT;
|
type = INT;
|
||||||
_data._int = p_int;
|
_data._int = p_int64;
|
||||||
}
|
}
|
||||||
|
|
||||||
Variant::Variant(unsigned int p_int) {
|
Variant::Variant(int32_t p_int32) {
|
||||||
type = INT;
|
type = INT;
|
||||||
_data._int = p_int;
|
_data._int = p_int32;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef NEED_LONG_INT
|
Variant::Variant(int16_t p_int16) {
|
||||||
|
|
||||||
Variant::Variant(signed long p_int) {
|
|
||||||
type = INT;
|
type = INT;
|
||||||
_data._int = p_int;
|
_data._int = p_int16;
|
||||||
}
|
}
|
||||||
|
|
||||||
Variant::Variant(unsigned long p_int) {
|
Variant::Variant(int8_t p_int8) {
|
||||||
type = INT;
|
type = INT;
|
||||||
_data._int = p_int;
|
_data._int = p_int8;
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Variant::Variant(int64_t p_int) {
|
|
||||||
type = INT;
|
|
||||||
_data._int = p_int;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Variant::Variant(uint64_t p_int) {
|
Variant::Variant(uint64_t p_uint64) {
|
||||||
type = INT;
|
type = INT;
|
||||||
_data._int = p_int;
|
_data._int = p_uint64;
|
||||||
}
|
}
|
||||||
|
|
||||||
Variant::Variant(signed short p_short) {
|
Variant::Variant(uint32_t p_uint32) {
|
||||||
type = INT;
|
type = INT;
|
||||||
_data._int = p_short;
|
_data._int = p_uint32;
|
||||||
}
|
}
|
||||||
|
|
||||||
Variant::Variant(unsigned short p_short) {
|
Variant::Variant(uint16_t p_uint16) {
|
||||||
type = INT;
|
type = INT;
|
||||||
_data._int = p_short;
|
_data._int = p_uint16;
|
||||||
}
|
}
|
||||||
|
|
||||||
Variant::Variant(signed char p_char) {
|
Variant::Variant(uint8_t p_uint8) {
|
||||||
type = INT;
|
type = INT;
|
||||||
_data._int = p_char;
|
_data._int = p_uint8;
|
||||||
}
|
|
||||||
|
|
||||||
Variant::Variant(unsigned char p_char) {
|
|
||||||
type = INT;
|
|
||||||
_data._int = p_char;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Variant::Variant(float p_float) {
|
Variant::Variant(float p_float) {
|
||||||
|
|
|
@ -355,19 +355,14 @@ public:
|
||||||
const Variant &operator[](const Variant &p_key) const = delete;
|
const Variant &operator[](const Variant &p_key) const = delete;
|
||||||
|
|
||||||
operator bool() const;
|
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 int64_t() const;
|
||||||
|
operator int32_t() const;
|
||||||
|
operator int16_t() const;
|
||||||
|
operator int8_t() const;
|
||||||
operator uint64_t() const;
|
operator uint64_t() const;
|
||||||
#ifdef NEED_LONG_INT
|
operator uint32_t() const;
|
||||||
operator signed long() const;
|
operator uint16_t() const;
|
||||||
operator unsigned long() const;
|
operator uint8_t() const;
|
||||||
#endif
|
|
||||||
|
|
||||||
operator ObjectID() const;
|
operator ObjectID() const;
|
||||||
|
|
||||||
|
@ -430,18 +425,14 @@ public:
|
||||||
Object *get_validated_object_with_check(bool &r_previously_freed) const;
|
Object *get_validated_object_with_check(bool &r_previously_freed) const;
|
||||||
|
|
||||||
Variant(bool p_bool);
|
Variant(bool p_bool);
|
||||||
Variant(signed int p_int); // real one
|
Variant(int64_t p_int64);
|
||||||
Variant(unsigned int p_int);
|
Variant(int32_t p_int32);
|
||||||
#ifdef NEED_LONG_INT
|
Variant(int16_t p_int16);
|
||||||
Variant(signed long p_long); // real one
|
Variant(int8_t p_int8);
|
||||||
Variant(unsigned long p_long);
|
Variant(uint64_t p_uint64);
|
||||||
#endif
|
Variant(uint32_t p_uint32);
|
||||||
Variant(signed short p_short); // real one
|
Variant(uint16_t p_uint16);
|
||||||
Variant(unsigned short p_short);
|
Variant(uint8_t p_uint8);
|
||||||
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(float p_float);
|
Variant(float p_float);
|
||||||
Variant(double p_double);
|
Variant(double p_double);
|
||||||
Variant(const ObjectID &p_id);
|
Variant(const ObjectID &p_id);
|
||||||
|
|
|
@ -140,7 +140,6 @@ def configure(env: "SConsEnvironment"):
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
env.Append(ASFLAGS=["-arch", "arm64"])
|
env.Append(ASFLAGS=["-arch", "arm64"])
|
||||||
env.Append(CPPDEFINES=["NEED_LONG_INT"])
|
|
||||||
|
|
||||||
# Temp fix for ABS/MAX/MIN macros in iOS SDK blocking compilation
|
# Temp fix for ABS/MAX/MIN macros in iOS SDK blocking compilation
|
||||||
env.Append(CCFLAGS=["-Wno-ambiguous-macro"])
|
env.Append(CCFLAGS=["-Wno-ambiguous-macro"])
|
||||||
|
|
Loading…
Reference in a new issue