Browse Source

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
Rémi Verschelde 5 years ago
parent
commit
10de9978b8

+ 3 - 4
modules/gdnative/include/pluginscript/godot_pluginscript.h

@@ -44,13 +44,12 @@ typedef void godot_pluginscript_language_data;
 
 // --- Instance ---
 
-// TODO: use godot_string_name for faster lookup ?
 typedef struct {
 	godot_pluginscript_instance_data *(*init)(godot_pluginscript_script_data *p_data, godot_object *p_owner);
 	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 (*get_prop)(godot_pluginscript_instance_data *p_data, const godot_string *p_name, godot_variant *r_ret);
+	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_name *p_name, godot_variant *r_ret);
 
 	godot_variant (*call_method)(godot_pluginscript_instance_data *p_data,
 			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);
 	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);
 	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);

+ 2 - 4
modules/gdnative/pluginscript/pluginscript_instance.cpp

@@ -39,13 +39,11 @@
 #include "pluginscript_script.h"
 
 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, (const godot_variant *)&p_value);
+	return _desc->set_prop(_data, (const godot_string_name *)&p_name, (const godot_variant *)&p_value);
 }
 
 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, (godot_variant *)&r_ret);
+	return _desc->get_prop(_data, (const godot_string_name *)&p_name, (godot_variant *)&r_ret);
 }
 
 Ref<Script> PluginScriptInstance::get_script() const {

+ 1 - 2
modules/gdnative/pluginscript/pluginscript_language.cpp

@@ -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) {
-	const String variable = String(p_variable);
-	_desc.add_global_constant(_data, (godot_string *)&variable, (godot_variant *)&p_value);
+	_desc.add_global_constant(_data, (godot_string_name *)&p_variable, (godot_variant *)&p_value);
 }
 
 /* LOADER FUNCTIONS */