diff options
author | Emmanuel Leblond <emmanuel.leblond@gmail.com> | 2022-10-23 10:43:09 +0200 |
---|---|---|
committer | Emmanuel Leblond <emmanuel.leblond@gmail.com> | 2022-11-08 21:44:07 +0100 |
commit | 1e8756c94bcc96a0ec1dd380a99183d062bde794 (patch) | |
tree | 70210bd4134541fe4dc78fe315b13bb7405b0f20 /core/object/object.h | |
parent | 84262efd2a682553049d5b4d984cf86ff239fb62 (diff) | |
download | redot-engine-1e8756c94bcc96a0ec1dd380a99183d062bde794.tar.gz |
Use StringName in the whole GDExtension API instead of const char *
Diffstat (limited to 'core/object/object.h')
-rw-r--r-- | core/object/object.h | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/core/object/object.h b/core/object/object.h index 8c647cda40..7bb88998a2 100644 --- a/core/object/object.h +++ b/core/object/object.h @@ -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); } |