aboutsummaryrefslogtreecommitdiff
path: root/tools/libclang/CXString.cpp
diff options
context:
space:
mode:
authorDmitri Gribenko <gribozavr@gmail.com>2013-02-02 00:02:12 +0000
committerDmitri Gribenko <gribozavr@gmail.com>2013-02-02 00:02:12 +0000
commit0c4394c7f63008fbf4d335710b34f71afab362a3 (patch)
treeffa64a00de093cddebddf7cab99b67866d37992c /tools/libclang/CXString.cpp
parentf5cfc89ea46cf20b4d5b5c42568e9ba6a4bbdd80 (diff)
libclang: introduce cxstring::{createRef,createDup} for C strings
Also migrate all clients from the old API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174238 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/libclang/CXString.cpp')
-rw-r--r--tools/libclang/CXString.cpp27
1 files changed, 19 insertions, 8 deletions
diff --git a/tools/libclang/CXString.cpp b/tools/libclang/CXString.cpp
index 73d1e1e35f..f13a5a0415 100644
--- a/tools/libclang/CXString.cpp
+++ b/tools/libclang/CXString.cpp
@@ -54,15 +54,26 @@ CXString cxstring::createNull() {
return Str;
}
-CXString cxstring::createCXString(const char *String, bool DupString){
+CXString cxstring::createRef(const char *String) {
+ if (String && String[0] == '\0')
+ return cxstring::createEmpty();
+
CXString Str;
- if (DupString) {
- Str.data = strdup(String);
- Str.private_flags = (unsigned) CXS_Malloc;
- } else {
- Str.data = String;
- Str.private_flags = (unsigned) CXS_Unmanaged;
- }
+ Str.data = String;
+ Str.private_flags = CXS_Unmanaged;
+ return Str;
+}
+
+CXString cxstring::createDup(const char *String) {
+ if (!String)
+ return cxstring::createNull();
+
+ if (String[0] == '\0')
+ return cxstring::createEmpty();
+
+ CXString Str;
+ Str.data = strdup(String);
+ Str.private_flags = CXS_Malloc;
return Str;
}