[libclang] Change clang_VirtualFileOverlay_writeToBuffer to return a malloc'ed buffer.
Returning CXString is not appropriate if we want to switch to a non-string format buffer.
llvm-svn: 202675
diff --git a/clang/tools/libclang/BuildSystem.cpp b/clang/tools/libclang/BuildSystem.cpp
index 311319a..5fd95b0 100644
--- a/clang/tools/libclang/BuildSystem.cpp
+++ b/clang/tools/libclang/BuildSystem.cpp
@@ -162,9 +162,10 @@
}
enum CXErrorCode
-clang_VirtualFileOverlay_writeToBuffer(CXVirtualFileOverlay VFO,
- unsigned, CXString *out_buffer) {
- if (!VFO || !out_buffer)
+clang_VirtualFileOverlay_writeToBuffer(CXVirtualFileOverlay VFO, unsigned,
+ char **out_buffer_ptr,
+ unsigned *out_buffer_size) {
+ if (!VFO || !out_buffer_ptr || !out_buffer_size)
return CXError_InvalidArguments;
llvm::SmallVector<EntryTy, 16> Entries;
@@ -186,7 +187,10 @@
JSONVFSPrinter Printer(OS);
Printer.print(Entries);
- *out_buffer = cxstring::createDup(OS.str());
+ StringRef Data = OS.str();
+ *out_buffer_ptr = (char*)malloc(Data.size());
+ *out_buffer_size = Data.size();
+ memcpy(*out_buffer_ptr, Data.data(), Data.size());
return CXError_Success;
}