summaryrefslogtreecommitdiffstats
path: root/clang/tools/libclang/CXString.cpp
diff options
context:
space:
mode:
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