aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael J. Spencer <bigcheesegs@gmail.com>2010-12-09 17:37:18 +0000
committerMichael J. Spencer <bigcheesegs@gmail.com>2010-12-09 17:37:18 +0000
commit58fe86dc0ecb7efff01abe2b0024a6a53ebb2c81 (patch)
tree9a16bdfe41de8b658563c67b2d511003ee346b3a
parent61187dd0ad3d8574f655074e3e7948193d90bb1e (diff)
downloadexternal_llvm-58fe86dc0ecb7efff01abe2b0024a6a53ebb2c81.zip
external_llvm-58fe86dc0ecb7efff01abe2b0024a6a53ebb2c81.tar.gz
external_llvm-58fe86dc0ecb7efff01abe2b0024a6a53ebb2c81.tar.bz2
Support: Move c_str from SmallVector back to SmallString and add a free standing
templated c_str in Windows.h to replace it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121381 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/ADT/SmallString.h7
-rw-r--r--include/llvm/ADT/SmallVector.h7
-rw-r--r--lib/Support/Windows/PathV2.inc2
-rw-r--r--lib/Support/Windows/Windows.h13
4 files changed, 21 insertions, 8 deletions
diff --git a/include/llvm/ADT/SmallString.h b/include/llvm/ADT/SmallString.h
index 7328560..4388a85 100644
--- a/include/llvm/ADT/SmallString.h
+++ b/include/llvm/ADT/SmallString.h
@@ -38,6 +38,13 @@ public:
// Extra methods.
StringRef str() const { return StringRef(this->begin(), this->size()); }
+ // TODO: Make this const, if it's safe...
+ const char* c_str() {
+ this->push_back(0);
+ this->pop_back();
+ return this->data();
+ }
+
// Implicit conversion to StringRef.
operator StringRef() const { return str(); }
diff --git a/include/llvm/ADT/SmallVector.h b/include/llvm/ADT/SmallVector.h
index 123b85d..1c86622 100644
--- a/include/llvm/ADT/SmallVector.h
+++ b/include/llvm/ADT/SmallVector.h
@@ -340,13 +340,6 @@ public:
return Result;
}
- // TODO: Make this const, if it's safe...
- typename SuperClass::const_pointer c_str() {
- push_back(0);
- pop_back();
- return this->data();
- }
-
void swap(SmallVectorImpl &RHS);
/// append - Add the specified range to the end of the SmallVector.
diff --git a/lib/Support/Windows/PathV2.inc b/lib/Support/Windows/PathV2.inc
index 6a1ea93..6b425c4 100644
--- a/lib/Support/Windows/PathV2.inc
+++ b/lib/Support/Windows/PathV2.inc
@@ -623,7 +623,7 @@ error_code directory_iterator_construct(directory_iterator& it,
// Get the first directory entry.
WIN32_FIND_DATAW FirstFind;
- ScopedFindHandle FindHandle(::FindFirstFileW(path_utf16.c_str(), &FirstFind));
+ ScopedFindHandle FindHandle(::FindFirstFileW(c_str(path_utf16), &FirstFind));
if (!FindHandle)
return windows_error(::GetLastError());
diff --git a/lib/Support/Windows/Windows.h b/lib/Support/Windows/Windows.h
index 12ddc92..6e0b585 100644
--- a/lib/Support/Windows/Windows.h
+++ b/lib/Support/Windows/Windows.h
@@ -102,3 +102,16 @@ public:
typedef ScopedHandle<HANDLE, uintptr_t(-1),
BOOL (WINAPI*)(HANDLE), ::FindClose>
ScopedFindHandle;
+
+namespace llvm {
+template <class T>
+class SmallVectorImpl;
+
+template <class T>
+typename SmallVectorImpl<T>::const_pointer
+c_str(SmallVectorImpl<T> &str) {
+ str.push_back(0);
+ str.pop_back();
+ return str.data();
+}
+} // end namespace llvm.