1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-06 12:20:30 +00:00

Merge pull request #35812 from touilleMan/gdnative-uses-godot_string_name-where-possible

Use StringName in pluginscript's set/get_prop and add_global_constant
This commit is contained in:
Rémi Verschelde
2020-02-10 10:47:22 +01:00
committed by GitHub
3 changed files with 6 additions and 10 deletions

View File

@@ -44,13 +44,12 @@ typedef void godot_pluginscript_language_data;
// --- Instance --- // --- Instance ---
// TODO: use godot_string_name for faster lookup ?
typedef struct { typedef struct {
godot_pluginscript_instance_data *(*init)(godot_pluginscript_script_data *p_data, godot_object *p_owner); godot_pluginscript_instance_data *(*init)(godot_pluginscript_script_data *p_data, godot_object *p_owner);
void (*finish)(godot_pluginscript_instance_data *p_data); void (*finish)(godot_pluginscript_instance_data *p_data);
godot_bool (*set_prop)(godot_pluginscript_instance_data *p_data, const godot_string *p_name, const godot_variant *p_value); godot_bool (*set_prop)(godot_pluginscript_instance_data *p_data, const godot_string_name *p_name, const godot_variant *p_value);
godot_bool (*get_prop)(godot_pluginscript_instance_data *p_data, const godot_string *p_name, godot_variant *r_ret); godot_bool (*get_prop)(godot_pluginscript_instance_data *p_data, const godot_string_name *p_name, godot_variant *r_ret);
godot_variant (*call_method)(godot_pluginscript_instance_data *p_data, godot_variant (*call_method)(godot_pluginscript_instance_data *p_data,
const godot_string_name *p_method, const godot_variant **p_args, const godot_string_name *p_method, const godot_variant **p_args,
@@ -136,7 +135,7 @@ typedef struct {
godot_error (*complete_code)(godot_pluginscript_language_data *p_data, const godot_string *p_code, const godot_string *p_path, godot_object *p_owner, godot_array *r_options, godot_bool *r_force, godot_string *r_call_hint); godot_error (*complete_code)(godot_pluginscript_language_data *p_data, const godot_string *p_code, const godot_string *p_path, godot_object *p_owner, godot_array *r_options, godot_bool *r_force, godot_string *r_call_hint);
void (*auto_indent_code)(godot_pluginscript_language_data *p_data, godot_string *p_code, int p_from_line, int p_to_line); void (*auto_indent_code)(godot_pluginscript_language_data *p_data, godot_string *p_code, int p_from_line, int p_to_line);
void (*add_global_constant)(godot_pluginscript_language_data *p_data, const godot_string *p_variable, const godot_variant *p_value); void (*add_global_constant)(godot_pluginscript_language_data *p_data, const godot_string_name *p_variable, const godot_variant *p_value);
godot_string (*debug_get_error)(godot_pluginscript_language_data *p_data); godot_string (*debug_get_error)(godot_pluginscript_language_data *p_data);
int (*debug_get_stack_level_count)(godot_pluginscript_language_data *p_data); int (*debug_get_stack_level_count)(godot_pluginscript_language_data *p_data);
int (*debug_get_stack_level_line)(godot_pluginscript_language_data *p_data, int p_level); int (*debug_get_stack_level_line)(godot_pluginscript_language_data *p_data, int p_level);

View File

@@ -39,13 +39,11 @@
#include "pluginscript_script.h" #include "pluginscript_script.h"
bool PluginScriptInstance::set(const StringName &p_name, const Variant &p_value) { bool PluginScriptInstance::set(const StringName &p_name, const Variant &p_value) {
String name = String(p_name); return _desc->set_prop(_data, (const godot_string_name *)&p_name, (const godot_variant *)&p_value);
return _desc->set_prop(_data, (const godot_string *)&name, (const godot_variant *)&p_value);
} }
bool PluginScriptInstance::get(const StringName &p_name, Variant &r_ret) const { bool PluginScriptInstance::get(const StringName &p_name, Variant &r_ret) const {
String name = String(p_name); return _desc->get_prop(_data, (const godot_string_name *)&p_name, (godot_variant *)&r_ret);
return _desc->get_prop(_data, (const godot_string *)&name, (godot_variant *)&r_ret);
} }
Ref<Script> PluginScriptInstance::get_script() const { Ref<Script> PluginScriptInstance::get_script() const {

View File

@@ -187,8 +187,7 @@ void PluginScriptLanguage::auto_indent_code(String &p_code, int p_from_line, int
} }
void PluginScriptLanguage::add_global_constant(const StringName &p_variable, const Variant &p_value) { void PluginScriptLanguage::add_global_constant(const StringName &p_variable, const Variant &p_value) {
const String variable = String(p_variable); _desc.add_global_constant(_data, (godot_string_name *)&p_variable, (godot_variant *)&p_value);
_desc.add_global_constant(_data, (godot_string *)&variable, (godot_variant *)&p_value);
} }
/* LOADER FUNCTIONS */ /* LOADER FUNCTIONS */