gingerBill 1 year ago
parent
commit
cf9bdc134c
2 changed files with 10 additions and 3 deletions
  1. 3 3
      src/checker.cpp
  2. 7 0
      src/types.cpp

+ 3 - 3
src/checker.cpp

@@ -1236,9 +1236,9 @@ gb_internal void init_universal(void) {
 
 
 	// intrinsics types for objective-c stuff
 	// intrinsics types for objective-c stuff
 	{
 	{
-		t_objc_object   = add_global_type_name(intrinsics_pkg->scope, str_lit("objc_object"),   alloc_type_struct());
-		t_objc_selector = add_global_type_name(intrinsics_pkg->scope, str_lit("objc_selector"), alloc_type_struct());
-		t_objc_class    = add_global_type_name(intrinsics_pkg->scope, str_lit("objc_class"),    alloc_type_struct());
+		t_objc_object   = add_global_type_name(intrinsics_pkg->scope, str_lit("objc_object"),   alloc_type_struct_complete());
+		t_objc_selector = add_global_type_name(intrinsics_pkg->scope, str_lit("objc_selector"), alloc_type_struct_complete());
+		t_objc_class    = add_global_type_name(intrinsics_pkg->scope, str_lit("objc_class"),    alloc_type_struct_complete());
 
 
 		t_objc_id       = alloc_type_pointer(t_objc_object);
 		t_objc_id       = alloc_type_pointer(t_objc_object);
 		t_objc_SEL      = alloc_type_pointer(t_objc_selector);
 		t_objc_SEL      = alloc_type_pointer(t_objc_selector);

+ 7 - 0
src/types.cpp

@@ -1061,6 +1061,13 @@ gb_internal Type *alloc_type_struct() {
 	return t;
 	return t;
 }
 }
 
 
+gb_internal Type *alloc_type_struct_complete() {
+	Type *t = alloc_type(Type_Struct);
+	wait_signal_set(&t->Struct.fields_wait_signal);
+	return t;
+}
+
+
 gb_internal Type *alloc_type_union() {
 gb_internal Type *alloc_type_union() {
 	Type *t = alloc_type(Type_Union);
 	Type *t = alloc_type(Type_Union);
 	return t;
 	return t;