From 4c0916df79731c335626f8150c43a35a439e451f Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Tue, 23 Jun 2015 12:34:02 +0200
Subject: fs/Path: use base class StringPointer

---
 src/fs/Path.hxx   | 16 ++++++----------
 src/fs/Traits.hxx |  6 ++++--
 2 files changed, 10 insertions(+), 12 deletions(-)

(limited to 'src')

diff --git a/src/fs/Path.hxx b/src/fs/Path.hxx
index 21eaffef8..70ea52393 100644
--- a/src/fs/Path.hxx
+++ b/src/fs/Path.hxx
@@ -37,14 +37,10 @@ class AllocatedPath;
  * This class manages a pointer to an existing path string.  While an
  * instance lives, the string must not be invalidated.
  */
-class Path {
-	typedef PathTraitsFS::value_type value_type;
-	typedef PathTraitsFS::pointer pointer;
-	typedef PathTraitsFS::const_pointer const_pointer;
+class Path : public PathTraitsFS::Pointer {
+	typedef PathTraitsFS::Pointer Base;
 
-	const_pointer value;
-
-	constexpr Path(const_pointer _value):value(_value) {}
+	constexpr Path(const_pointer _value):Base(_value) {}
 
 public:
 	/**
@@ -80,7 +76,7 @@ public:
 	 * must not be used.
 	 */
 	bool IsNull() const {
-		return value == nullptr;
+		return Base::IsNull();
 	}
 
 	/**
@@ -89,7 +85,7 @@ public:
 	 * @see IsNull()
 	 */
 	void SetNull() {
-		value = nullptr;
+		*this = nullptr;
 	}
 
 	/**
@@ -110,7 +106,7 @@ public:
 	 */
 	gcc_pure
 	const_pointer c_str() const {
-		return value;
+		return Base::c_str();
 	}
 
 	/**
diff --git a/src/fs/Traits.hxx b/src/fs/Traits.hxx
index b92330f60..08d798f05 100644
--- a/src/fs/Traits.hxx
+++ b/src/fs/Traits.hxx
@@ -22,6 +22,7 @@
 
 #include "check.h"
 #include "Compiler.h"
+#include "util/StringPointer.hxx"
 #include "util/StringAPI.hxx"
 
 #ifdef WIN32
@@ -50,8 +51,9 @@ struct PathTraitsFS {
 #endif
 	typedef string::traits_type char_traits;
 	typedef char_traits::char_type value_type;
-	typedef value_type *pointer;
-	typedef const value_type *const_pointer;
+	typedef StringPointer<value_type> Pointer;
+	typedef Pointer::pointer pointer;
+	typedef Pointer::const_pointer const_pointer;
 
 #ifdef WIN32
 	static constexpr value_type SEPARATOR = '\\';
-- 
cgit v1.2.3