Commit eeeef3ea authored by Denis Krjuchkov's avatar Denis Krjuchkov

fs/AllocatedPath: use PathTraits::BuildFS

parent 96413b16
...@@ -37,12 +37,6 @@ inline AllocatedPath::AllocatedPath(Donate, pointer _value) ...@@ -37,12 +37,6 @@ inline AllocatedPath::AllocatedPath(Donate, pointer _value)
AllocatedPath::~AllocatedPath() {} AllocatedPath::~AllocatedPath() {}
AllocatedPath AllocatedPath
AllocatedPath::Build(const_pointer a, const_pointer b)
{
return AllocatedPath(Donate(), g_build_filename(a, b, nullptr));
}
AllocatedPath
AllocatedPath::FromUTF8(const char *path_utf8) AllocatedPath::FromUTF8(const char *path_utf8)
{ {
return AllocatedPath(Donate(), ::PathFromUTF8(path_utf8)); return AllocatedPath(Donate(), ::PathFromUTF8(path_utf8));
......
...@@ -55,6 +55,10 @@ class AllocatedPath { ...@@ -55,6 +55,10 @@ class AllocatedPath {
AllocatedPath(string &&_value):value(_value) {} AllocatedPath(string &&_value):value(_value) {}
static AllocatedPath Build(const_pointer a, size_t a_size,
const_pointer b, size_t b_size) {
return AllocatedPath(PathTraits::BuildFS(a, a_size, b, b_size));
}
public: public:
/** /**
* Copy a #AllocatedPath object. * Copy a #AllocatedPath object.
...@@ -88,22 +92,28 @@ public: ...@@ -88,22 +92,28 @@ public:
* Join two path components with the path separator. * Join two path components with the path separator.
*/ */
gcc_pure gcc_nonnull_all gcc_pure gcc_nonnull_all
static AllocatedPath Build(const_pointer a, const_pointer b); static AllocatedPath Build(const_pointer a, const_pointer b) {
return Build(a, PathTraits::GetLengthFS(a),
b, PathTraits::GetLengthFS(b));
}
gcc_pure gcc_nonnull_all gcc_pure gcc_nonnull_all
static AllocatedPath Build(const_pointer a, const AllocatedPath &b) { static AllocatedPath Build(const_pointer a, const AllocatedPath &b) {
return Build(a, b.c_str()); return Build(a, PathTraits::GetLengthFS(a),
b.value.c_str(), b.value.size());
} }
gcc_pure gcc_nonnull_all gcc_pure gcc_nonnull_all
static AllocatedPath Build(const AllocatedPath &a, const_pointer b) { static AllocatedPath Build(const AllocatedPath &a, const_pointer b) {
return Build(a.c_str(), b); return Build(a.value.c_str(), a.value.size(),
b, PathTraits::GetLengthFS(b));
} }
gcc_pure gcc_pure
static AllocatedPath Build(const AllocatedPath &a, static AllocatedPath Build(const AllocatedPath &a,
const AllocatedPath &b) { const AllocatedPath &b) {
return Build(a.c_str(), b.c_str()); return Build(a.value.c_str(), a.value.size(),
b.value.c_str(), b.value.size());
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment