summaryrefslogtreecommitdiffstats
path: root/clang/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
commit3c66b0be9055ed43f42cf5d1bd808f14374df2a3 (patch)
tree0396b036ac8bb4e694e320d37502c1b7b11d6c00 /clang/tools/libclang/CXString.cpp
parente498b25bc5c1f009be17fc5241b9c4f9dadac5d9 (diff)
downloadbcm5719-llvm-3c66b0be9055ed43f42cf5d1bd808f14374df2a3.tar.gz
bcm5719-llvm-3c66b0be9055ed43f42cf5d1bd808f14374df2a3.zip
libclang: introduce cxstring::{createRef,createDup} for C strings
Also migrate all clients from the old API. llvm-svn: 174238
Diffstat (limited to 'clang/tools/libclang/CXString.cpp')
-rw-r--r--clang/tools/libclang/CXString.cpp27
1 files changed, 19 insertions, 8 deletions
diff --git a/clang/tools/libclang/CXString.cpp b/clang/tools/libclang/CXString.cpp
index 73d1e1e35f7..f13a5a0415d 100644
--- a/clang/tools/libclang/CXString.cpp
+++ b/clang/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;
}
OpenPOWER on IntegriCloud