Use StringName in the whole GDExtension API instead of const char *

This commit is contained in:
Emmanuel Leblond 2022-10-23 10:43:09 +02:00
parent 84262efd2a
commit 1e8756c94b
No known key found for this signature in database
GPG key ID: C360860E645EFFC0
7 changed files with 139 additions and 107 deletions

View file

@ -192,10 +192,10 @@ struct PropertyInfo {
explicit PropertyInfo(const GDNativePropertyInfo &pinfo) :
type((Variant::Type)pinfo.type),
name(pinfo.name),
class_name(pinfo.class_name), // can be null
name(*reinterpret_cast<StringName *>(pinfo.name)),
class_name(*reinterpret_cast<StringName *>(pinfo.class_name)),
hint((PropertyHint)pinfo.hint),
hint_string(pinfo.hint_string), // can be null
hint_string(*reinterpret_cast<String *>(pinfo.hint_string)),
usage(pinfo.usage) {}
bool operator==(const PropertyInfo &p_info) const {
@ -242,6 +242,20 @@ struct MethodInfo {
MethodInfo() {}
explicit MethodInfo(const GDNativeMethodInfo &pinfo) :
name(*reinterpret_cast<StringName *>(pinfo.name)),
return_val(PropertyInfo(pinfo.return_value)),
flags(pinfo.flags),
id(pinfo.id) {
for (uint32_t j = 0; j < pinfo.argument_count; j++) {
arguments.push_back(PropertyInfo(pinfo.arguments[j]));
}
const Variant *def_values = (const Variant *)pinfo.default_arguments;
for (uint32_t j = 0; j < pinfo.default_argument_count; j++) {
default_arguments.push_back(def_values[j]);
}
}
void _push_params(const PropertyInfo &p_param) {
arguments.push_back(p_param);
}