@@ -657,22 +657,28 @@ static _FORCE_INLINE_ void vc_ptrcall(void (*method)(T *, P...), void *p_base, c
657
657
} \
658
658
};
659
659
660
- #define VARCALL_PACKED_GETTER (m_packed_type, m_return_type ) \
661
- static m_return_type func_##m_packed_type##_get(m_packed_type *p_instance, int64_t p_index) { \
662
- return p_instance->get (p_index); \
660
+ #define VARCALL_ARRAY_GETTER_SETTER (m_packed_type, m_type ) \
661
+ static m_type func_##m_packed_type##_get(m_packed_type *p_instance, int64_t p_index) { \
662
+ ERR_FAIL_INDEX_V (p_index, p_instance->size (), m_type ()); \
663
+ return p_instance->get (p_index); \
664
+ } \
665
+ static void func_##m_packed_type##_set(m_packed_type *p_instance, int64_t p_index, const m_type &p_value) { \
666
+ ERR_FAIL_INDEX (p_index, p_instance->size ()); \
667
+ p_instance->set (p_index, p_value); \
663
668
}
664
669
665
670
struct _VariantCall {
666
- VARCALL_PACKED_GETTER (PackedByteArray, uint8_t )
667
- VARCALL_PACKED_GETTER (PackedColorArray, Color)
668
- VARCALL_PACKED_GETTER (PackedFloat32Array, float )
669
- VARCALL_PACKED_GETTER (PackedFloat64Array, double )
670
- VARCALL_PACKED_GETTER (PackedInt32Array, int32_t )
671
- VARCALL_PACKED_GETTER (PackedInt64Array, int64_t )
672
- VARCALL_PACKED_GETTER (PackedStringArray, String)
673
- VARCALL_PACKED_GETTER (PackedVector2Array, Vector2)
674
- VARCALL_PACKED_GETTER (PackedVector3Array, Vector3)
675
- VARCALL_PACKED_GETTER (PackedVector4Array, Vector4)
671
+ VARCALL_ARRAY_GETTER_SETTER (PackedByteArray, uint8_t )
672
+ VARCALL_ARRAY_GETTER_SETTER (PackedColorArray, Color)
673
+ VARCALL_ARRAY_GETTER_SETTER (PackedFloat32Array, float )
674
+ VARCALL_ARRAY_GETTER_SETTER (PackedFloat64Array, double )
675
+ VARCALL_ARRAY_GETTER_SETTER (PackedInt32Array, int32_t )
676
+ VARCALL_ARRAY_GETTER_SETTER (PackedInt64Array, int64_t )
677
+ VARCALL_ARRAY_GETTER_SETTER (PackedStringArray, String)
678
+ VARCALL_ARRAY_GETTER_SETTER (PackedVector2Array, Vector2)
679
+ VARCALL_ARRAY_GETTER_SETTER (PackedVector3Array, Vector3)
680
+ VARCALL_ARRAY_GETTER_SETTER (PackedVector4Array, Vector4)
681
+ VARCALL_ARRAY_GETTER_SETTER (Array, Variant)
676
682
677
683
static String func_PackedByteArray_get_string_from_ascii (PackedByteArray *p_instance) {
678
684
String s;
@@ -2354,8 +2360,8 @@ static void _register_variant_builtin_methods_array() {
2354
2360
bind_method (Array, clear, sarray (), varray ());
2355
2361
bind_method (Array, hash, sarray (), varray ());
2356
2362
bind_method (Array, assign, sarray (" array" ), varray ());
2357
- bind_method (Array, get, sarray (" index" ), varray ());
2358
- bind_method (Array, set, sarray (" index" , " value" ), varray ());
2363
+ bind_function (Array, get, _VariantCall::func_Array_get , sarray (" index" ), varray ());
2364
+ bind_functionnc (Array, set, _VariantCall::func_Array_set , sarray (" index" , " value" ), varray ());
2359
2365
bind_method (Array, push_back, sarray (" value" ), varray ());
2360
2366
bind_method (Array, push_front, sarray (" value" ), varray ());
2361
2367
bind_method (Array, append, sarray (" value" ), varray ());
@@ -2400,7 +2406,7 @@ static void _register_variant_builtin_methods_array() {
2400
2406
bind_method (Array, make_read_only, sarray (), varray ());
2401
2407
bind_method (Array, is_read_only, sarray (), varray ());
2402
2408
2403
- /* Packed*Array get (see VARCALL_PACKED_GETTER macro) */
2409
+ /* Packed*Array get/set (see VARCALL_ARRAY_GETTER_SETTER macro) */
2404
2410
bind_function (PackedByteArray, get, _VariantCall::func_PackedByteArray_get, sarray (" index" ), varray ());
2405
2411
bind_function (PackedColorArray, get, _VariantCall::func_PackedColorArray_get, sarray (" index" ), varray ());
2406
2412
bind_function (PackedFloat32Array, get, _VariantCall::func_PackedFloat32Array_get, sarray (" index" ), varray ());
@@ -2412,10 +2418,20 @@ static void _register_variant_builtin_methods_array() {
2412
2418
bind_function (PackedVector3Array, get, _VariantCall::func_PackedVector3Array_get, sarray (" index" ), varray ());
2413
2419
bind_function (PackedVector4Array, get, _VariantCall::func_PackedVector4Array_get, sarray (" index" ), varray ());
2414
2420
2421
+ bind_functionnc (PackedByteArray, set, _VariantCall::func_PackedByteArray_set, sarray (" index" , " value" ), varray ());
2422
+ bind_functionnc (PackedColorArray, set, _VariantCall::func_PackedColorArray_set, sarray (" index" , " value" ), varray ());
2423
+ bind_functionnc (PackedFloat32Array, set, _VariantCall::func_PackedFloat32Array_set, sarray (" index" , " value" ), varray ());
2424
+ bind_functionnc (PackedFloat64Array, set, _VariantCall::func_PackedFloat64Array_set, sarray (" index" , " value" ), varray ());
2425
+ bind_functionnc (PackedInt32Array, set, _VariantCall::func_PackedInt32Array_set, sarray (" index" , " value" ), varray ());
2426
+ bind_functionnc (PackedInt64Array, set, _VariantCall::func_PackedInt64Array_set, sarray (" index" , " value" ), varray ());
2427
+ bind_functionnc (PackedStringArray, set, _VariantCall::func_PackedStringArray_set, sarray (" index" , " value" ), varray ());
2428
+ bind_functionnc (PackedVector2Array, set, _VariantCall::func_PackedVector2Array_set, sarray (" index" , " value" ), varray ());
2429
+ bind_functionnc (PackedVector3Array, set, _VariantCall::func_PackedVector3Array_set, sarray (" index" , " value" ), varray ());
2430
+ bind_functionnc (PackedVector4Array, set, _VariantCall::func_PackedVector4Array_set, sarray (" index" , " value" ), varray ());
2431
+
2415
2432
/* Byte Array */
2416
2433
bind_method (PackedByteArray, size, sarray (), varray ());
2417
2434
bind_method (PackedByteArray, is_empty, sarray (), varray ());
2418
- bind_method (PackedByteArray, set, sarray (" index" , " value" ), varray ());
2419
2435
bind_method (PackedByteArray, push_back, sarray (" value" ), varray ());
2420
2436
bind_method (PackedByteArray, append, sarray (" value" ), varray ());
2421
2437
bind_method (PackedByteArray, append_array, sarray (" array" ), varray ());
@@ -2481,7 +2497,6 @@ static void _register_variant_builtin_methods_array() {
2481
2497
2482
2498
bind_method (PackedInt32Array, size, sarray (), varray ());
2483
2499
bind_method (PackedInt32Array, is_empty, sarray (), varray ());
2484
- bind_method (PackedInt32Array, set, sarray (" index" , " value" ), varray ());
2485
2500
bind_method (PackedInt32Array, push_back, sarray (" value" ), varray ());
2486
2501
bind_method (PackedInt32Array, append, sarray (" value" ), varray ());
2487
2502
bind_method (PackedInt32Array, append_array, sarray (" array" ), varray ());
@@ -2505,7 +2520,6 @@ static void _register_variant_builtin_methods_array() {
2505
2520
2506
2521
bind_method (PackedInt64Array, size, sarray (), varray ());
2507
2522
bind_method (PackedInt64Array, is_empty, sarray (), varray ());
2508
- bind_method (PackedInt64Array, set, sarray (" index" , " value" ), varray ());
2509
2523
bind_method (PackedInt64Array, push_back, sarray (" value" ), varray ());
2510
2524
bind_method (PackedInt64Array, append, sarray (" value" ), varray ());
2511
2525
bind_method (PackedInt64Array, append_array, sarray (" array" ), varray ());
@@ -2529,7 +2543,6 @@ static void _register_variant_builtin_methods_array() {
2529
2543
2530
2544
bind_method (PackedFloat32Array, size, sarray (), varray ());
2531
2545
bind_method (PackedFloat32Array, is_empty, sarray (), varray ());
2532
- bind_method (PackedFloat32Array, set, sarray (" index" , " value" ), varray ());
2533
2546
bind_method (PackedFloat32Array, push_back, sarray (" value" ), varray ());
2534
2547
bind_method (PackedFloat32Array, append, sarray (" value" ), varray ());
2535
2548
bind_method (PackedFloat32Array, append_array, sarray (" array" ), varray ());
@@ -2553,7 +2566,6 @@ static void _register_variant_builtin_methods_array() {
2553
2566
2554
2567
bind_method (PackedFloat64Array, size, sarray (), varray ());
2555
2568
bind_method (PackedFloat64Array, is_empty, sarray (), varray ());
2556
- bind_method (PackedFloat64Array, set, sarray (" index" , " value" ), varray ());
2557
2569
bind_method (PackedFloat64Array, push_back, sarray (" value" ), varray ());
2558
2570
bind_method (PackedFloat64Array, append, sarray (" value" ), varray ());
2559
2571
bind_method (PackedFloat64Array, append_array, sarray (" array" ), varray ());
@@ -2577,7 +2589,6 @@ static void _register_variant_builtin_methods_array() {
2577
2589
2578
2590
bind_method (PackedStringArray, size, sarray (), varray ());
2579
2591
bind_method (PackedStringArray, is_empty, sarray (), varray ());
2580
- bind_method (PackedStringArray, set, sarray (" index" , " value" ), varray ());
2581
2592
bind_method (PackedStringArray, push_back, sarray (" value" ), varray ());
2582
2593
bind_method (PackedStringArray, append, sarray (" value" ), varray ());
2583
2594
bind_method (PackedStringArray, append_array, sarray (" array" ), varray ());
@@ -2601,7 +2612,6 @@ static void _register_variant_builtin_methods_array() {
2601
2612
2602
2613
bind_method (PackedVector2Array, size, sarray (), varray ());
2603
2614
bind_method (PackedVector2Array, is_empty, sarray (), varray ());
2604
- bind_method (PackedVector2Array, set, sarray (" index" , " value" ), varray ());
2605
2615
bind_method (PackedVector2Array, push_back, sarray (" value" ), varray ());
2606
2616
bind_method (PackedVector2Array, append, sarray (" value" ), varray ());
2607
2617
bind_method (PackedVector2Array, append_array, sarray (" array" ), varray ());
@@ -2625,7 +2635,6 @@ static void _register_variant_builtin_methods_array() {
2625
2635
2626
2636
bind_method (PackedVector3Array, size, sarray (), varray ());
2627
2637
bind_method (PackedVector3Array, is_empty, sarray (), varray ());
2628
- bind_method (PackedVector3Array, set, sarray (" index" , " value" ), varray ());
2629
2638
bind_method (PackedVector3Array, push_back, sarray (" value" ), varray ());
2630
2639
bind_method (PackedVector3Array, append, sarray (" value" ), varray ());
2631
2640
bind_method (PackedVector3Array, append_array, sarray (" array" ), varray ());
@@ -2649,7 +2658,6 @@ static void _register_variant_builtin_methods_array() {
2649
2658
2650
2659
bind_method (PackedColorArray, size, sarray (), varray ());
2651
2660
bind_method (PackedColorArray, is_empty, sarray (), varray ());
2652
- bind_method (PackedColorArray, set, sarray (" index" , " value" ), varray ());
2653
2661
bind_method (PackedColorArray, push_back, sarray (" value" ), varray ());
2654
2662
bind_method (PackedColorArray, append, sarray (" value" ), varray ());
2655
2663
bind_method (PackedColorArray, append_array, sarray (" array" ), varray ());
@@ -2673,7 +2681,6 @@ static void _register_variant_builtin_methods_array() {
2673
2681
2674
2682
bind_method (PackedVector4Array, size, sarray (), varray ());
2675
2683
bind_method (PackedVector4Array, is_empty, sarray (), varray ());
2676
- bind_method (PackedVector4Array, set, sarray (" index" , " value" ), varray ());
2677
2684
bind_method (PackedVector4Array, push_back, sarray (" value" ), varray ());
2678
2685
bind_method (PackedVector4Array, append, sarray (" value" ), varray ());
2679
2686
bind_method (PackedVector4Array, append_array, sarray (" array" ), varray ());
0 commit comments