Fix const qualifier for parameters in GDExtension api functions
This commit is contained in:
@@ -220,7 +220,7 @@ void ClassDB::bind_method_godot(const StringName &p_class_name, MethodBind *p_me
|
||||
|
||||
StringName name = p_method->get_name();
|
||||
GDNativeExtensionClassMethodInfo method_info = {
|
||||
name._native_ptr(), // const GDNativeStringNamePtr;
|
||||
name._native_ptr(), // GDNativeStringNamePtr;
|
||||
p_method, // void *method_userdata;
|
||||
MethodBind::bind_call, // GDNativeExtensionClassMethodCall call_func;
|
||||
MethodBind::bind_ptrcall, // GDNativeExtensionClassMethodPtrCall ptrcall_func;
|
||||
@@ -261,10 +261,10 @@ void ClassDB::add_signal(const StringName &p_class, const MethodInfo &p_signal)
|
||||
for (const PropertyInfo &par : p_signal.arguments) {
|
||||
parameters.push_back(GDNativePropertyInfo{
|
||||
static_cast<GDNativeVariantType>(par.type), // GDNativeVariantType type;
|
||||
par.name._native_ptr(), // const GDNativeStringNamePtr name;
|
||||
par.class_name._native_ptr(), // const GDNativeStringNamePtr class_name;
|
||||
par.name._native_ptr(), // GDNativeStringNamePtr name;
|
||||
par.class_name._native_ptr(), // GDNativeStringNamePtr class_name;
|
||||
par.hint, // NONE //uint32_t hint;
|
||||
par.hint_string._native_ptr(), // const GDNativeStringPtr hint_string;
|
||||
par.hint_string._native_ptr(), // GDNativeStringPtr hint_string;
|
||||
par.usage, // DEFAULT //uint32_t usage;
|
||||
});
|
||||
}
|
||||
@@ -288,7 +288,7 @@ void ClassDB::bind_integer_constant(const StringName &p_class_name, const String
|
||||
// Register it with Godot
|
||||
internal::gdn_interface->classdb_register_extension_class_integer_constant(internal::library, p_class_name._native_ptr(), p_enum_name._native_ptr(), p_constant_name._native_ptr(), p_constant_value, p_is_bitfield);
|
||||
}
|
||||
GDNativeExtensionClassCallVirtual ClassDB::get_virtual_func(void *p_userdata, const GDNativeStringNamePtr p_name) {
|
||||
GDNativeExtensionClassCallVirtual ClassDB::get_virtual_func(void *p_userdata, GDNativeConstStringNamePtr p_name) {
|
||||
// This is called by Godot the first time it calls a virtual function, and it caches the result, per object instance.
|
||||
// Because of this, it can happen from different threads at once.
|
||||
// It should be ok not using any mutex as long as we only READ data.
|
||||
|
||||
@@ -91,7 +91,7 @@ PropertyInfo MethodBind::get_argument_info(int p_argument) const {
|
||||
return info;
|
||||
}
|
||||
|
||||
void MethodBind::bind_call(void *p_method_userdata, GDExtensionClassInstancePtr p_instance, const GDNativeVariantPtr *p_args, const GDNativeInt p_argument_count, GDNativeVariantPtr r_return, GDNativeCallError *r_error) {
|
||||
void MethodBind::bind_call(void *p_method_userdata, GDExtensionClassInstancePtr p_instance, GDNativeConstVariantPtr *p_args, GDNativeInt p_argument_count, GDNativeVariantPtr r_return, GDNativeCallError *r_error) {
|
||||
const MethodBind *bind = reinterpret_cast<const MethodBind *>(p_method_userdata);
|
||||
Variant ret = bind->call(p_instance, p_args, p_argument_count, *r_error);
|
||||
// This assumes the return value is an empty Variant, so it doesn't need to call the destructor first.
|
||||
@@ -99,7 +99,7 @@ void MethodBind::bind_call(void *p_method_userdata, GDExtensionClassInstancePtr
|
||||
internal::gdn_interface->variant_new_copy(r_return, ret._native_ptr());
|
||||
}
|
||||
|
||||
void MethodBind::bind_ptrcall(void *p_method_userdata, GDExtensionClassInstancePtr p_instance, const GDNativeTypePtr *p_args, GDNativeTypePtr r_return) {
|
||||
void MethodBind::bind_ptrcall(void *p_method_userdata, GDExtensionClassInstancePtr p_instance, GDNativeConstTypePtr *p_args, GDNativeTypePtr r_return) {
|
||||
const MethodBind *bind = reinterpret_cast<const MethodBind *>(p_method_userdata);
|
||||
bind->ptrcall(p_instance, p_args, r_return);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user