Jelajahi Sumber

core: overwrite previous string content

Daniele Bartolini 8 tahun lalu
induk
melakukan
b7021b6a11
2 mengubah file dengan 5 tambahan dan 1 penghapusan
  1. 1 1
      src/core/filesystem/path.cpp
  2. 4 0
      src/core/unit_tests.cpp

+ 1 - 1
src/core/filesystem/path.cpp

@@ -57,7 +57,7 @@ namespace path
 		const u32 la = strlen32(path_a);
 		const u32 la = strlen32(path_a);
 		const u32 lb = strlen32(path_b);
 		const u32 lb = strlen32(path_b);
 		path.reserve(la + lb + 1);
 		path.reserve(la + lb + 1);
-		path += path_a;
+		path  = path_a;
 		path += PATH_SEPARATOR;
 		path += PATH_SEPARATOR;
 		path += path_b;
 		path += path_b;
 	}
 	}

+ 4 - 0
src/core/unit_tests.cpp

@@ -1150,6 +1150,8 @@ static void test_path()
 		DynamicString path(ta);
 		DynamicString path(ta);
 		path::join(path, "/home", "foo");
 		path::join(path, "/home", "foo");
 		ENSURE(path == "/home/foo");
 		ENSURE(path == "/home/foo");
+		path::join(path, "/home", "bar");
+		ENSURE(path == "/home/bar");
 	}
 	}
 	{
 	{
 		ENSURE(path::has_trailing_separator("/home/foo/"));
 		ENSURE(path::has_trailing_separator("/home/foo/"));
@@ -1191,6 +1193,8 @@ static void test_path()
 		DynamicString path(ta);
 		DynamicString path(ta);
 		path::join(path, "C:\\Users", "foo");
 		path::join(path, "C:\\Users", "foo");
 		ENSURE(path == "C:\\Users\\foo");
 		ENSURE(path == "C:\\Users\\foo");
+		path::join(path, "C:\\Users", "bar");
+		ENSURE(path == "C:\\Users\\bar");
 	}
 	}
 	{
 	{
 		ENSURE(path::has_trailing_separator("C:\\Users\\foo\\"));
 		ENSURE(path::has_trailing_separator("C:\\Users\\foo\\"));