Skip to content

Commit 5293f88

Browse files
committed
Merge branch 'StrictConcurrency'
2 parents 22c36ff + 17dfb51 commit 5293f88

File tree

8 files changed

+144
-71
lines changed

8 files changed

+144
-71
lines changed

Dependencies/Gravity/src/shared/gravity_delegate.h

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -31,29 +31,29 @@ typedef struct {
3131

3232
#define ERROR_DESC_NONE (error_desc_t){0,0,0,0}
3333

34-
typedef void (*gravity_error_callback) (gravity_vm *vm, error_type_t error_type, const char *description, error_desc_t error_desc, void *xdata);
35-
typedef void (*gravity_log_callback) (gravity_vm *vm, const char *message, void *xdata);
36-
typedef void (*gravity_log_clear) (gravity_vm *vm, void *xdata);
37-
typedef void (*gravity_unittest_callback) (gravity_vm *vm, error_type_t error_type, const char *desc, const char *note, gravity_value_t value, int32_t row, int32_t col, void *xdata);
38-
typedef const char* (*gravity_filename_callback) (uint32_t fileid, void *xdata);
39-
typedef const char* (*gravity_loadfile_callback) (const char *file, size_t *size, uint32_t *fileid, void *xdata, bool *is_static);
40-
typedef const char** (*gravity_optclass_callback) (void *xdata);
41-
typedef void (*gravity_parser_callback) (void *token, void *xdata);
42-
typedef const char* (*gravity_precode_callback) (void *xdata);
43-
typedef void (*gravity_type_callback) (void *token, const char *type, void *xdata);
34+
typedef void (* __attribute__((swift_attr("@MainActor"))) gravity_error_callback) (gravity_vm *vm, error_type_t error_type, const char *description, error_desc_t error_desc, void *xdata);
35+
typedef void (* __attribute__((swift_attr("@MainActor"))) gravity_log_callback) (gravity_vm *vm, const char *message, void *xdata);
36+
typedef void (* __attribute__((swift_attr("@MainActor"))) gravity_log_clear) (gravity_vm *vm, void *xdata);
37+
typedef void (* __attribute__((swift_attr("@MainActor"))) gravity_unittest_callback) (gravity_vm *vm, error_type_t error_type, const char *desc, const char *note, gravity_value_t value, int32_t row, int32_t col, void *xdata);
38+
typedef const char* (* __attribute__((swift_attr("@MainActor"))) gravity_filename_callback) (uint32_t fileid, void *xdata);
39+
typedef const char* (* __attribute__((swift_attr("@MainActor"))) gravity_loadfile_callback) (const char *file, size_t *size, uint32_t *fileid, void *xdata, bool *is_static);
40+
typedef const char** (* __attribute__((swift_attr("@MainActor"))) gravity_optclass_callback) (void *xdata);
41+
typedef void (* __attribute__((swift_attr("@MainActor"))) gravity_parser_callback) (void *token, void *xdata);
42+
typedef const char* (* __attribute__((swift_attr("@MainActor"))) gravity_precode_callback) (void *xdata);
43+
typedef void (* __attribute__((swift_attr("@MainActor"))) gravity_type_callback) (void *token, const char *type, void *xdata);
4444

45-
typedef void (*gravity_bridge_blacken) (gravity_vm *vm, void *xdata);
46-
typedef void* (*gravity_bridge_clone) (gravity_vm *vm, void *xdata);
47-
typedef bool (*gravity_bridge_equals) (gravity_vm *vm, void *obj1, void *obj2);
48-
typedef bool (*gravity_bridge_execute) (gravity_vm *vm, void *xdata, gravity_value_t ctx, gravity_value_t args[], int16_t nargs, uint32_t vindex);
49-
typedef void (*gravity_bridge_free) (gravity_vm *vm, gravity_object_t *obj);
50-
typedef bool (*gravity_bridge_getundef) (gravity_vm *vm, void *xdata, gravity_value_t target, const char *key, uint32_t vindex);
51-
typedef bool (*gravity_bridge_getvalue) (gravity_vm *vm, void *xdata, gravity_value_t target, const char *key, uint32_t vindex);
52-
typedef bool (*gravity_bridge_initinstance) (gravity_vm *vm, void *xdata, gravity_value_t ctx, gravity_instance_t *instance, gravity_value_t args[], int16_t nargs);
53-
typedef bool (*gravity_bridge_setvalue) (gravity_vm *vm, void *xdata, gravity_value_t target, const char *key, gravity_value_t value);
54-
typedef bool (*gravity_bridge_setundef) (gravity_vm *vm, void *xdata, gravity_value_t target, const char *key, gravity_value_t value);
55-
typedef uint32_t (*gravity_bridge_size) (gravity_vm *vm, gravity_object_t *obj);
56-
typedef const char* (*gravity_bridge_string) (gravity_vm *vm, void *xdata, uint32_t *len);
45+
typedef void (* __attribute__((swift_attr("@MainActor"))) gravity_bridge_blacken) (gravity_vm *vm, void *xdata);
46+
typedef void* (* __attribute__((swift_attr("@MainActor"))) gravity_bridge_clone) (gravity_vm *vm, void *xdata);
47+
typedef bool (* __attribute__((swift_attr("@MainActor"))) gravity_bridge_equals) (gravity_vm *vm, void *obj1, void *obj2);
48+
typedef bool (* __attribute__((swift_attr("@MainActor"))) gravity_bridge_execute) (gravity_vm *vm, void *xdata, gravity_value_t ctx, gravity_value_t args[], int16_t nargs, uint32_t vindex);
49+
typedef void (* __attribute__((swift_attr("@MainActor"))) gravity_bridge_free) (gravity_vm *vm, gravity_object_t *obj);
50+
typedef bool (* __attribute__((swift_attr("@MainActor"))) gravity_bridge_getundef) (gravity_vm *vm, void *xdata, gravity_value_t target, const char *key, uint32_t vindex);
51+
typedef bool (* __attribute__((swift_attr("@MainActor"))) gravity_bridge_getvalue) (gravity_vm *vm, void *xdata, gravity_value_t target, const char *key, uint32_t vindex);
52+
typedef bool (* __attribute__((swift_attr("@MainActor"))) gravity_bridge_initinstance) (gravity_vm *vm, void *xdata, gravity_value_t ctx, gravity_instance_t *instance, gravity_value_t args[], int16_t nargs);
53+
typedef bool (* __attribute__((swift_attr("@MainActor"))) gravity_bridge_setvalue) (gravity_vm *vm, void *xdata, gravity_value_t target, const char *key, gravity_value_t value);
54+
typedef bool (* __attribute__((swift_attr("@MainActor"))) gravity_bridge_setundef) (gravity_vm *vm, void *xdata, gravity_value_t target, const char *key, gravity_value_t value);
55+
typedef uint32_t (* __attribute__((swift_attr("@MainActor"))) gravity_bridge_size) (gravity_vm *vm, gravity_object_t *obj);
56+
typedef const char* (* __attribute__((swift_attr("@MainActor"))) gravity_bridge_string) (gravity_vm *vm, void *xdata, uint32_t *len);
5757

5858
typedef struct {
5959
// user data
@@ -62,16 +62,16 @@ typedef struct {
6262
bool disable_gccheck_1; // memory allocations are protected so it could be useful to automatically check gc when enabled is restored
6363

6464
// callbacks
65-
gravity_log_callback log_callback; // log reporting callback
66-
gravity_log_clear log_clear; // log reset callback
67-
gravity_error_callback error_callback; // error reporting callback
68-
gravity_unittest_callback unittest_callback; // special unit test callback
69-
gravity_parser_callback parser_callback; // lexer callback used for syntax highlight
70-
gravity_type_callback type_callback; // callback used to bind a token with a declared type
71-
gravity_precode_callback precode_callback; // called at parse time in order to give the opportunity to add custom source code
72-
gravity_loadfile_callback loadfile_callback; // callback to give the opportunity to load a file from an import statement
73-
gravity_filename_callback filename_callback; // called while reporting an error in order to be able to convert a fileid to a real filename
74-
gravity_optclass_callback optional_classes; // optional classes to be exposed to the semantic checker as extern (to be later registered)
65+
gravity_log_callback log_callback __attribute__((swift_attr("@MainActor"))); // log reporting callback
66+
gravity_log_clear log_clear __attribute__((swift_attr("@MainActor"))); // log reset callback
67+
gravity_error_callback error_callback __attribute__((swift_attr("@MainActor"))); // error reporting callback
68+
gravity_unittest_callback unittest_callback __attribute__((swift_attr("@MainActor"))); // special unit test callback
69+
gravity_parser_callback parser_callback __attribute__((swift_attr("@MainActor"))); // lexer callback used for syntax highlight
70+
gravity_type_callback type_callback __attribute__((swift_attr("@MainActor"))); // callback used to bind a token with a declared type
71+
gravity_precode_callback precode_callback __attribute__((swift_attr("@MainActor"))); // called at parse time in order to give the opportunity to add custom source code
72+
gravity_loadfile_callback loadfile_callback __attribute__((swift_attr("@MainActor"))); // callback to give the opportunity to load a file from an import statement
73+
gravity_filename_callback filename_callback __attribute__((swift_attr("@MainActor"))); // called while reporting an error in order to be able to convert a fileid to a real filename
74+
gravity_optclass_callback optional_classes __attribute__((swift_attr("@MainActor"))); // optional classes to be exposed to the semantic checker as extern (to be later registered)
7575

7676
// bridge
7777
gravity_bridge_initinstance bridge_initinstance; // init class

Sources/GateEngine/Scripting/Gravity/Gravity+Errors.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import Gravity
99

10+
@MainActor
1011
internal func errorCallback(
1112
vm: OpaquePointer?,
1213
errorType: error_type_t,

Sources/GateEngine/Scripting/Gravity/Gravity+Files.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import Foundation
99
import Gravity
1010

11+
@MainActor
1112
internal func filenameCallback(
1213
fileID: UInt32,
1314
xData: UnsafeMutableRawPointer?
@@ -19,6 +20,7 @@ internal func filenameCallback(
1920
}
2021
}
2122

23+
@MainActor
2224
internal func loadFileCallback(
2325
file: UnsafePointer<CChar>!,
2426
size: UnsafeMutablePointer<Int>!,

Sources/GateEngine/Scripting/Gravity/Gravity+Testing.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#if DEBUG
99
import Gravity
1010

11+
@MainActor
1112
internal func unittestCallback(
1213
vm: OpaquePointer!,
1314
errorType: error_type_t,

0 commit comments

Comments
 (0)