diff options
author | Dmitri Gribenko <gribozavr@gmail.com> | 2013-02-02 00:02:12 +0000 |
---|---|---|
committer | Dmitri Gribenko <gribozavr@gmail.com> | 2013-02-02 00:02:12 +0000 |
commit | 3c66b0be9055ed43f42cf5d1bd808f14374df2a3 (patch) | |
tree | 0396b036ac8bb4e694e320d37502c1b7b11d6c00 /clang/tools/libclang/CXString.cpp | |
parent | e498b25bc5c1f009be17fc5241b9c4f9dadac5d9 (diff) | |
download | bcm5719-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.cpp | 27 |
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; } |