Daniele Bartolini 10 سال پیش
والد
کامیت
d4c6d4f863

+ 5 - 1
src/core/json/json_parser.cpp

@@ -126,12 +126,16 @@ float JSONElement::to_float(float def) const
 	return is_nil() ? def : njson::parse_float(_at);
 }
 
-void JSONElement::to_string(DynamicString& str, const char* def) const
+DynamicString JSONElement::to_string(const char* def) const
 {
+	DynamicString str(default_allocator());
+
 	if (is_nil())
 		str = def;
 	else
 		njson::parse_string(_at, str);
+
+	return str;
 }
 
 Vector2 JSONElement::to_vector2(const Vector2& def) const

+ 1 - 1
src/core/json/json_parser.h

@@ -97,7 +97,7 @@ public:
 	float to_float(float def = 0) const;
 
 	/// Returns the string value of the element.
-	void to_string(DynamicString& str, const char* def = "") const;
+	DynamicString to_string(const char* def = "") const;
 
 	/// Returns the Vector2 value of the element.
 	/// @note Vector2 = [x, y]

+ 6 - 13
src/renderers/shader.cpp

@@ -45,19 +45,12 @@ namespace shader_resource
 		JSONParser json(buf);
 		JSONElement root = json.root();
 
-		DynamicString vs_code2(default_allocator());
-		DynamicString fs_code2(default_allocator());
-		DynamicString varying_def(default_allocator());
-		DynamicString common_code(default_allocator());
-		DynamicString vs_in_out(default_allocator());
-		DynamicString fs_in_out(default_allocator());
-
-		root.key("vs_code").to_string(vs_code2);
-		root.key("fs_code").to_string(fs_code2);
-		root.key("varying_def").to_string(varying_def);
-		root.key("common").to_string(common_code);
-		root.key("vs_in_out").to_string(vs_in_out);
-		root.key("fs_in_out").to_string(fs_in_out);
+		DynamicString vs_code2 = root.key("vs_code").to_string();
+		DynamicString fs_code2 = root.key("fs_code").to_string();
+		DynamicString varying_def = root.key("varying_def").to_string();
+		DynamicString common_code = root.key("common").to_string();
+		DynamicString vs_in_out = root.key("vs_in_out").to_string();
+		DynamicString fs_in_out = root.key("fs_in_out").to_string();
 
 		DynamicString vs_code(default_allocator());
 		DynamicString fs_code(default_allocator());

+ 1 - 2
src/resource/material_resource.cpp

@@ -104,8 +104,7 @@ namespace material_resource
 			UniformHandle uh;
 			uh.uniform_handle = 0;
 
-			DynamicString type(default_allocator());
-			root.key("uniforms").key(keys[i].c_str()).key("type").to_string(type);
+			DynamicString type = root.key("uniforms").key(keys[i].c_str()).key("type").to_string();
 
 			UniformData ud;
 			ud.name_offset = array::size(names); array::push(names, keys[i].c_str(), keys[i].length()); array::push_back(names, '\0');

+ 4 - 3
src/resource/physics_resource.cpp

@@ -99,7 +99,7 @@ namespace physics_resource
 			sr.position =    shape.key("position").to_vector3();
 			sr.rotation =    shape.key("rotation").to_quaternion();
 
-			DynamicString stype(default_allocator()); shape.key("type").to_string(stype);
+			DynamicString stype = shape.key("type").to_string();
 			sr.type = shape_type_to_enum(stype.c_str());
 
 			switch (sr.type)
@@ -175,9 +175,10 @@ namespace physics_resource
 			JSONElement joint			= e.key(keys[k].c_str());
 			JSONElement type 			= joint.key("type");
 
+			DynamicString jtype = type.to_string();
+
 			JointResource pj;
-			pj.name = keys[k].to_string_id();
-			DynamicString jtype(default_allocator()); type.to_string(jtype);
+			pj.name         = keys[k].to_string_id();
 			pj.type         = joint_type_to_enum(jtype.c_str());
 			pj.actor_0      = joint.key("actor_0").to_string_id();
 			pj.actor_1      = joint.key("actor_1").to_string_id();

+ 1 - 2
src/resource/sound_resource.cpp

@@ -36,8 +36,7 @@ namespace sound_resource
 		JSONParser json(buf);
 		JSONElement root = json.root();
 
-		DynamicString name(default_allocator());
-		root.key("source").to_string(name);
+		DynamicString name = root.key("source").to_string();
 
 		Buffer sound = opts.read(name.c_str());
 		const WAVHeader* wav = (const WAVHeader*)array::begin(sound);

+ 1 - 2
src/resource/texture_resource.cpp

@@ -562,8 +562,7 @@ namespace texture_resource
 		JSONParser json(buf);
 		JSONElement root = json.root();
 
-		DynamicString name(default_allocator());
-		root.key("source").to_string(name);
+		DynamicString name = root.key("source").to_string();
 
 		File* source = opts._fs.open(name.c_str(), FOM_READ);
 		BinaryReader br(*source);

+ 3 - 7
src/resource/unit_resource.cpp

@@ -163,11 +163,8 @@ namespace unit_resource
 			JSONElement node = camera.key("node");
 			JSONElement type = camera.key("type");
 
-			DynamicString node_name(default_allocator());
-			node.to_string(node_name);
-			DynamicString camera_type(default_allocator());
-			type.to_string(camera_type);
-
+			DynamicString node_name = node.to_string();
+			DynamicString camera_type = type.to_string();
 			StringId32 node_name_hash = node_name.to_string_id();
 
 			UnitCamera cn;
@@ -199,8 +196,7 @@ namespace unit_resource
 			rn.node = find_node_index(node_name_hash, node_depths);
 			rn.visible = renderable.key("visible").to_bool();
 
-			DynamicString res_type(default_allocator());
-			renderable.key("type").to_string(res_type);
+			DynamicString res_type = renderable.key("type").to_string();
 
 			if (res_type == "mesh")
 			{