Skip to content

Commit b0cda1f

Browse files
committed
Core: Use fixed-width integer types in Variant
1 parent 7a42afb commit b0cda1f

File tree

3 files changed

+46
-111
lines changed

3 files changed

+46
-111
lines changed

core/variant/variant.cpp

Lines changed: 32 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -1417,7 +1417,7 @@ void Variant::_clear_internal() {
14171417
}
14181418
}
14191419

1420-
Variant::operator signed int() const {
1420+
Variant::operator int64_t() const {
14211421
switch (type) {
14221422
case NIL:
14231423
return 0;
@@ -1435,7 +1435,7 @@ Variant::operator signed int() const {
14351435
}
14361436
}
14371437

1438-
Variant::operator unsigned int() const {
1438+
Variant::operator int32_t() const {
14391439
switch (type) {
14401440
case NIL:
14411441
return 0;
@@ -1453,7 +1453,7 @@ Variant::operator unsigned int() const {
14531453
}
14541454
}
14551455

1456-
Variant::operator int64_t() const {
1456+
Variant::operator int16_t() const {
14571457
switch (type) {
14581458
case NIL:
14591459
return 0;
@@ -1471,7 +1471,7 @@ Variant::operator int64_t() const {
14711471
}
14721472
}
14731473

1474-
Variant::operator uint64_t() const {
1474+
Variant::operator int8_t() const {
14751475
switch (type) {
14761476
case NIL:
14771477
return 0;
@@ -1489,18 +1489,7 @@ Variant::operator uint64_t() const {
14891489
}
14901490
}
14911491

1492-
Variant::operator ObjectID() const {
1493-
if (type == INT) {
1494-
return ObjectID(_data._int);
1495-
} else if (type == OBJECT) {
1496-
return _get_obj().id;
1497-
} else {
1498-
return ObjectID();
1499-
}
1500-
}
1501-
1502-
#ifdef NEED_LONG_INT
1503-
Variant::operator signed long() const {
1492+
Variant::operator uint64_t() const {
15041493
switch (type) {
15051494
case NIL:
15061495
return 0;
@@ -1516,11 +1505,9 @@ Variant::operator signed long() const {
15161505
return 0;
15171506
}
15181507
}
1519-
1520-
return 0;
15211508
}
15221509

1523-
Variant::operator unsigned long() const {
1510+
Variant::operator uint32_t() const {
15241511
switch (type) {
15251512
case NIL:
15261513
return 0;
@@ -1536,12 +1523,9 @@ Variant::operator unsigned long() const {
15361523
return 0;
15371524
}
15381525
}
1539-
1540-
return 0;
15411526
}
1542-
#endif
15431527

1544-
Variant::operator signed short() const {
1528+
Variant::operator uint16_t() const {
15451529
switch (type) {
15461530
case NIL:
15471531
return 0;
@@ -1559,7 +1543,7 @@ Variant::operator signed short() const {
15591543
}
15601544
}
15611545

1562-
Variant::operator unsigned short() const {
1546+
Variant::operator uint8_t() const {
15631547
switch (type) {
15641548
case NIL:
15651549
return 0;
@@ -1577,44 +1561,18 @@ Variant::operator unsigned short() const {
15771561
}
15781562
}
15791563

1580-
Variant::operator signed char() const {
1581-
switch (type) {
1582-
case NIL:
1583-
return 0;
1584-
case BOOL:
1585-
return _data._bool ? 1 : 0;
1586-
case INT:
1587-
return _data._int;
1588-
case FLOAT:
1589-
return _data._float;
1590-
case STRING:
1591-
return operator String().to_int();
1592-
default: {
1593-
return 0;
1594-
}
1595-
}
1596-
}
1597-
1598-
Variant::operator unsigned char() const {
1599-
switch (type) {
1600-
case NIL:
1601-
return 0;
1602-
case BOOL:
1603-
return _data._bool ? 1 : 0;
1604-
case INT:
1605-
return _data._int;
1606-
case FLOAT:
1607-
return _data._float;
1608-
case STRING:
1609-
return operator String().to_int();
1610-
default: {
1611-
return 0;
1612-
}
1564+
Variant::operator ObjectID() const {
1565+
if (type == INT) {
1566+
return ObjectID(_data._int);
1567+
} else if (type == OBJECT) {
1568+
return _get_obj().id;
1569+
} else {
1570+
return ObjectID();
16131571
}
16141572
}
16151573

16161574
Variant::operator char32_t() const {
1617-
return operator unsigned int();
1575+
return operator uint32_t();
16181576
}
16191577

16201578
Variant::operator float() const {
@@ -2420,57 +2378,44 @@ Variant::Variant(bool p_bool) {
24202378
_data._bool = p_bool;
24212379
}
24222380

2423-
Variant::Variant(signed int p_int) {
2381+
Variant::Variant(int64_t p_int64) {
24242382
type = INT;
2425-
_data._int = p_int;
2383+
_data._int = p_int64;
24262384
}
24272385

2428-
Variant::Variant(unsigned int p_int) {
2386+
Variant::Variant(int32_t p_int32) {
24292387
type = INT;
2430-
_data._int = p_int;
2388+
_data._int = p_int32;
24312389
}
24322390

2433-
#ifdef NEED_LONG_INT
2434-
2435-
Variant::Variant(signed long p_int) {
2436-
type = INT;
2437-
_data._int = p_int;
2438-
}
2439-
2440-
Variant::Variant(unsigned long p_int) {
2441-
type = INT;
2442-
_data._int = p_int;
2443-
}
2444-
#endif
2445-
2446-
Variant::Variant(int64_t p_int) {
2391+
Variant::Variant(int16_t p_int16) {
24472392
type = INT;
2448-
_data._int = p_int;
2393+
_data._int = p_int16;
24492394
}
24502395

2451-
Variant::Variant(uint64_t p_int) {
2396+
Variant::Variant(int8_t p_int8) {
24522397
type = INT;
2453-
_data._int = p_int;
2398+
_data._int = p_int8;
24542399
}
24552400

2456-
Variant::Variant(signed short p_short) {
2401+
Variant::Variant(uint64_t p_uint64) {
24572402
type = INT;
2458-
_data._int = p_short;
2403+
_data._int = p_uint64;
24592404
}
24602405

2461-
Variant::Variant(unsigned short p_short) {
2406+
Variant::Variant(uint32_t p_uint32) {
24622407
type = INT;
2463-
_data._int = p_short;
2408+
_data._int = p_uint32;
24642409
}
24652410

2466-
Variant::Variant(signed char p_char) {
2411+
Variant::Variant(uint16_t p_uint16) {
24672412
type = INT;
2468-
_data._int = p_char;
2413+
_data._int = p_uint16;
24692414
}
24702415

2471-
Variant::Variant(unsigned char p_char) {
2416+
Variant::Variant(uint8_t p_uint8) {
24722417
type = INT;
2473-
_data._int = p_char;
2418+
_data._int = p_uint8;
24742419
}
24752420

24762421
Variant::Variant(float p_float) {

core/variant/variant.h

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -355,19 +355,14 @@ class Variant {
355355
const Variant &operator[](const Variant &p_key) const = delete;
356356

357357
operator bool() const;
358-
operator signed int() const;
359-
operator unsigned int() const; // this is the real one
360-
operator signed short() const;
361-
operator unsigned short() const;
362-
operator signed char() const;
363-
operator unsigned char() const;
364-
//operator long unsigned int() const;
365358
operator int64_t() const;
359+
operator int32_t() const;
360+
operator int16_t() const;
361+
operator int8_t() const;
366362
operator uint64_t() const;
367-
#ifdef NEED_LONG_INT
368-
operator signed long() const;
369-
operator unsigned long() const;
370-
#endif
363+
operator uint32_t() const;
364+
operator uint16_t() const;
365+
operator uint8_t() const;
371366

372367
operator ObjectID() const;
373368

@@ -430,18 +425,14 @@ class Variant {
430425
Object *get_validated_object_with_check(bool &r_previously_freed) const;
431426

432427
Variant(bool p_bool);
433-
Variant(signed int p_int); // real one
434-
Variant(unsigned int p_int);
435-
#ifdef NEED_LONG_INT
436-
Variant(signed long p_long); // real one
437-
Variant(unsigned long p_long);
438-
#endif
439-
Variant(signed short p_short); // real one
440-
Variant(unsigned short p_short);
441-
Variant(signed char p_char); // real one
442-
Variant(unsigned char p_char);
443-
Variant(int64_t p_int); // real one
444-
Variant(uint64_t p_int);
428+
Variant(int64_t p_int64);
429+
Variant(int32_t p_int32);
430+
Variant(int16_t p_int16);
431+
Variant(int8_t p_int8);
432+
Variant(uint64_t p_uint64);
433+
Variant(uint32_t p_uint32);
434+
Variant(uint16_t p_uint16);
435+
Variant(uint8_t p_uint8);
445436
Variant(float p_float);
446437
Variant(double p_double);
447438
Variant(const ObjectID &p_id);

platform/ios/detect.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,6 @@ def configure(env: "SConsEnvironment"):
140140
)
141141
)
142142
env.Append(ASFLAGS=["-arch", "arm64"])
143-
env.Append(CPPDEFINES=["NEED_LONG_INT"])
144143

145144
# Temp fix for ABS/MAX/MIN macros in iOS SDK blocking compilation
146145
env.Append(CCFLAGS=["-Wno-ambiguous-macro"])

0 commit comments

Comments
 (0)