diff --git a/src/system/kernel/fs/KPath.cpp b/src/system/kernel/fs/KPath.cpp index 0f86345af4..815b0dafbc 100644 --- a/src/system/kernel/fs/KPath.cpp +++ b/src/system/kernel/fs/KPath.cpp @@ -96,6 +96,7 @@ KPath::Adopt(KPath& other) fBuffer = other.fBuffer; fBufferSize = other.fBufferSize; + fPathLength = other.fPathLength; other.fBuffer = NULL; other.fBufferSize = 0; diff --git a/src/tests/system/kernel/fs/KPathTest.cpp b/src/tests/system/kernel/fs/KPathTest.cpp index 117c605c5a..9617c4bcfa 100644 --- a/src/tests/system/kernel/fs/KPathTest.cpp +++ b/src/tests/system/kernel/fs/KPathTest.cpp @@ -179,19 +179,19 @@ KPathTest::TestRemoveLeaf() void KPathTest::TestAdopt() { - KPath one("one", false, 10); + KPath one("first", false, 10); CPPUNIT_ASSERT(one.InitCheck() == B_OK); CPPUNIT_ASSERT(one.BufferSize() == 10); - CPPUNIT_ASSERT(one.Length() == 3); - KPath two("two", false, 20); + CPPUNIT_ASSERT(one.Length() == 5); + KPath two("second", false, 20); CPPUNIT_ASSERT(two.InitCheck() == B_OK); CPPUNIT_ASSERT(two.BufferSize() == 20); one.Adopt(two); CPPUNIT_ASSERT(one.InitCheck() == B_OK); CPPUNIT_ASSERT(one.BufferSize() == 20); - CPPUNIT_ASSERT(one.Length() == 3); - CPPUNIT_ASSERT(strcmp(one.Path(), "two") == 0); + CPPUNIT_ASSERT(one.Length() == 6); + CPPUNIT_ASSERT(strcmp(one.Path(), "second") == 0); CPPUNIT_ASSERT(two.Length() == 0); CPPUNIT_ASSERT(two.BufferSize() == 0); // CPPUNIT_ASSERT(two.InitCheck() == B_NO_INIT);