Skip to content

Commit d807d2b

Browse files
committed
Always cast function pointers in GDExtension C example
1 parent c362d2e commit d807d2b

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

tutorials/scripting/gdextension/gdextension_c_example.rst

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -351,10 +351,10 @@ in the ``src`` folder, adding the following code:
351351
GDExtensionInterfaceVariantGetPtrDestructor variant_get_ptr_destructor = (GDExtensionInterfaceVariantGetPtrDestructor)p_get_proc_address("variant_get_ptr_destructor");
352352
353353
// API.
354-
api.classdb_register_extension_class2 = p_get_proc_address("classdb_register_extension_class2");
354+
api.classdb_register_extension_class2 = (GDExtensionInterfaceClassdbRegisterExtensionClass2)p_get_proc_address("classdb_register_extension_class2");
355355
356356
// Constructors.
357-
constructors.string_name_new_with_latin1_chars = p_get_proc_address("string_name_new_with_latin1_chars");
357+
constructors.string_name_new_with_latin1_chars = (GDExtensionInterfaceStringNameNewWithLatin1Chars)p_get_proc_address("string_name_new_with_latin1_chars");
358358
359359
// Destructors.
360360
destructors.string_name_destructor = variant_get_ptr_destructor(GDEXTENSION_VARIANT_TYPE_STRING_NAME);
@@ -560,8 +560,8 @@ Then we change the ``load_api()`` function in ``api.c`` to grab these new functi
560560
// API.
561561
api.classdb_register_extension_class2 = p_get_proc_address("classdb_register_extension_class2");
562562
api.classdb_construct_object = (GDExtensionInterfaceClassdbConstructObject)p_get_proc_address("classdb_construct_object");
563-
api.object_set_instance = p_get_proc_address("object_set_instance");
564-
api.object_set_instance_binding = p_get_proc_address("object_set_instance_binding");
563+
api.object_set_instance = (GDExtensionInterfaceObjectSetInstance)p_get_proc_address("object_set_instance");
564+
api.object_set_instance_binding = (GDExtensionInterfaceObjectSetInstanceBinding)p_get_proc_address("object_set_instance_binding");
565565
api.mem_alloc = (GDExtensionInterfaceMemAlloc)p_get_proc_address("mem_alloc");
566566
api.mem_free = (GDExtensionInterfaceMemFree)p_get_proc_address("mem_free");
567567
}
@@ -1077,11 +1077,11 @@ added to the API.
10771077
...
10781078
// API
10791079
...
1080-
api.classdb_register_extension_class_method = p_get_proc_address("classdb_register_extension_class_method");
1080+
api.classdb_register_extension_class_method = (GDExtensionInterfaceClassdbRegisterExtensionClassMethod)p_get_proc_address("classdb_register_extension_class_method");
10811081
10821082
// Constructors.
10831083
...
1084-
constructors.string_new_with_utf8_chars = p_get_proc_address("string_new_with_utf8_chars");
1084+
constructors.string_new_with_utf8_chars = (GDExtensionInterfaceStringNewWithUtf8Chars)p_get_proc_address("string_new_with_utf8_chars");
10851085
10861086
// Destructors.
10871087
...
@@ -1352,7 +1352,7 @@ In the ``api.c`` file, we can load the new API function:
13521352
{
13531353
// API
13541354
...
1355-
api.classdb_register_extension_class_property = p_get_proc_address("classdb_register_extension_class_property");
1355+
api.classdb_register_extension_class_property = (GDExtensionInterfaceClassdbRegisterExtensionClassProperty)p_get_proc_address("classdb_register_extension_class_property");
13561356
13571357
...
13581358
}
@@ -1687,7 +1687,7 @@ Then in the ``api.c`` file we can grab the function pointers from Godot:
16871687
// API.
16881688
...
16891689
api.classdb_get_method_bind = (GDExtensionInterfaceClassdbGetMethodBind)p_get_proc_address("classdb_get_method_bind");
1690-
api.object_method_bind_ptrcall = p_get_proc_address("object_method_bind_ptrcall");
1690+
api.object_method_bind_ptrcall = (GDExtensionInterfaceObjectMethodBindPtrcall)p_get_proc_address("object_method_bind_ptrcall");
16911691
16921692
// Constructors.
16931693
...
@@ -1834,7 +1834,7 @@ implement the helper:
18341834
{
18351835
// API.
18361836
...
1837-
api.classdb_register_extension_class_signal = p_get_proc_address("classdb_register_extension_class_signal");
1837+
api.classdb_register_extension_class_signal = (GDExtensionInterfaceClassdbRegisterExtensionClassSignal)p_get_proc_address("classdb_register_extension_class_signal");
18381838
18391839
...
18401840
}
@@ -1973,7 +1973,7 @@ implement the helper function.
19731973
{
19741974
// API.
19751975
...
1976-
api.object_method_bind_call = p_get_proc_address("object_method_bind_call");
1976+
api.object_method_bind_call = (GDExtensionInterfaceObjectMethodBindCall)p_get_proc_address("object_method_bind_call");
19771977
19781978
// Constructors.
19791979
...
@@ -1982,7 +1982,7 @@ implement the helper function.
19821982
19831983
// Destructors.
19841984
...
1985-
destructors.variant_destroy = p_get_proc_address("variant_destroy");
1985+
destructors.variant_destroy = (GDExtensionInterfaceVariantDestroy)p_get_proc_address("variant_destroy");
19861986
19871987
...
19881988
}

0 commit comments

Comments
 (0)