Author: jlebar Date: Thu Sep 29 19:38:45 2016 New Revision: 282822 URL: http://llvm.org/viewvc/llvm-project?rev=282822&view=rev Log: Move UTF functions into namespace llvm.
Summary: This lets people link against LLVM and their own version of the UTF library. I determined this only affects llvm, clang, lld, and lldb by running $ git grep -wl 'UTF[0-9]\+\|\bConvertUTF\bisLegalUTF\|getNumBytesFor' | cut -f 1 -d '/' | sort | uniq clang lld lldb llvm Tested with ninja lldb ninja check-clang check-llvm check-lld (ninja check-lldb doesn't complete for me with or without this patch.) Reviewers: rnk Subscribers: klimek, beanz, mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D24996 Modified: lldb/trunk/source/DataFormatters/StringPrinter.cpp lldb/trunk/source/Plugins/Process/minidump/MinidumpTypes.cpp Modified: lldb/trunk/source/DataFormatters/StringPrinter.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/DataFormatters/StringPrinter.cpp?rev=282822&r1=282821&r2=282822&view=diff ============================================================================== --- lldb/trunk/source/DataFormatters/StringPrinter.cpp (original) +++ lldb/trunk/source/DataFormatters/StringPrinter.cpp Thu Sep 29 19:38:45 2016 @@ -133,7 +133,7 @@ GetPrintableImpl<StringPrinter::StringEl uint8_t *&next) { StringPrinter::StringPrinterBufferPointer<> retval{nullptr}; - unsigned utf8_encoded_len = getNumBytesForUTF8(*buffer); + unsigned utf8_encoded_len = llvm::getNumBytesForUTF8(*buffer); if (1 + buffer_end - buffer < utf8_encoded_len) { // I don't have enough bytes - print whatever I have left @@ -266,9 +266,10 @@ StringPrinter::GetDefaultEscapingHelper( // use this call if you already have an LLDB-side buffer for the data template <typename SourceDataType> static bool DumpUTFBufferToStream( - ConversionResult (*ConvertFunction)(const SourceDataType **, - const SourceDataType *, UTF8 **, UTF8 *, - ConversionFlags), + llvm::ConversionResult (*ConvertFunction)(const SourceDataType **, + const SourceDataType *, + llvm::UTF8 **, llvm::UTF8 *, + llvm::ConversionFlags), const StringPrinter::ReadBufferAndDumpToStreamOptions &dump_options) { Stream &stream(*dump_options.GetStream()); if (dump_options.GetPrefixToken() != 0) @@ -303,30 +304,29 @@ static bool DumpUTFBufferToStream( } lldb::DataBufferSP utf8_data_buffer_sp; - UTF8 *utf8_data_ptr = nullptr; - UTF8 *utf8_data_end_ptr = nullptr; + llvm::UTF8 *utf8_data_ptr = nullptr; + llvm::UTF8 *utf8_data_end_ptr = nullptr; if (ConvertFunction) { utf8_data_buffer_sp.reset(new DataBufferHeap(4 * bufferSPSize, 0)); - utf8_data_ptr = (UTF8 *)utf8_data_buffer_sp->GetBytes(); + utf8_data_ptr = (llvm::UTF8 *)utf8_data_buffer_sp->GetBytes(); utf8_data_end_ptr = utf8_data_ptr + utf8_data_buffer_sp->GetByteSize(); ConvertFunction(&data_ptr, data_end_ptr, &utf8_data_ptr, - utf8_data_end_ptr, lenientConversion); + utf8_data_end_ptr, llvm::lenientConversion); if (false == zero_is_terminator) utf8_data_end_ptr = utf8_data_ptr; + // needed because the ConvertFunction will change the value of the + // data_ptr. utf8_data_ptr = - (UTF8 *)utf8_data_buffer_sp->GetBytes(); // needed because the - // ConvertFunction will - // change the value of the - // data_ptr + (llvm::UTF8 *)utf8_data_buffer_sp->GetBytes(); } else { // just copy the pointers - the cast is necessary to make the compiler // happy // but this should only happen if we are reading UTF8 data - utf8_data_ptr = - const_cast<UTF8 *>(reinterpret_cast<const UTF8 *>(data_ptr)); - utf8_data_end_ptr = - const_cast<UTF8 *>(reinterpret_cast<const UTF8 *>(data_end_ptr)); + utf8_data_ptr = const_cast<llvm::UTF8 *>( + reinterpret_cast<const llvm::UTF8 *>(data_ptr)); + utf8_data_end_ptr = const_cast<llvm::UTF8 *>( + reinterpret_cast<const llvm::UTF8 *>(data_end_ptr)); } const bool escape_non_printables = dump_options.GetEscapeNonPrintables(); @@ -512,9 +512,10 @@ bool StringPrinter::ReadStringAndDumpToS template <typename SourceDataType> static bool ReadUTFBufferAndDumpToStream( const StringPrinter::ReadStringAndDumpToStreamOptions &options, - ConversionResult (*ConvertFunction)(const SourceDataType **, - const SourceDataType *, UTF8 **, UTF8 *, - ConversionFlags)) { + llvm::ConversionResult (*ConvertFunction)(const SourceDataType **, + const SourceDataType *, + llvm::UTF8 **, llvm::UTF8 *, + llvm::ConversionFlags)) { assert(options.GetStream() && "need a Stream to print the string to"); if (options.GetLocation() == 0 || @@ -591,21 +592,23 @@ template <> bool StringPrinter::ReadStringAndDumpToStream< StringPrinter::StringElementType::UTF8>( const ReadStringAndDumpToStreamOptions &options) { - return ReadUTFBufferAndDumpToStream<UTF8>(options, nullptr); + return ReadUTFBufferAndDumpToStream<llvm::UTF8>(options, nullptr); } template <> bool StringPrinter::ReadStringAndDumpToStream< StringPrinter::StringElementType::UTF16>( const ReadStringAndDumpToStreamOptions &options) { - return ReadUTFBufferAndDumpToStream<UTF16>(options, ConvertUTF16toUTF8); + return ReadUTFBufferAndDumpToStream<llvm::UTF16>(options, + llvm::ConvertUTF16toUTF8); } template <> bool StringPrinter::ReadStringAndDumpToStream< StringPrinter::StringElementType::UTF32>( const ReadStringAndDumpToStreamOptions &options) { - return ReadUTFBufferAndDumpToStream<UTF32>(options, ConvertUTF32toUTF8); + return ReadUTFBufferAndDumpToStream<llvm::UTF32>(options, + llvm::ConvertUTF32toUTF8); } template <> @@ -614,7 +617,7 @@ bool StringPrinter::ReadBufferAndDumpToS const ReadBufferAndDumpToStreamOptions &options) { assert(options.GetStream() && "need a Stream to print the string to"); - return DumpUTFBufferToStream<UTF8>(nullptr, options); + return DumpUTFBufferToStream<llvm::UTF8>(nullptr, options); } template <> @@ -632,7 +635,7 @@ bool StringPrinter::ReadBufferAndDumpToS const ReadBufferAndDumpToStreamOptions &options) { assert(options.GetStream() && "need a Stream to print the string to"); - return DumpUTFBufferToStream(ConvertUTF16toUTF8, options); + return DumpUTFBufferToStream(llvm::ConvertUTF16toUTF8, options); } template <> @@ -641,7 +644,7 @@ bool StringPrinter::ReadBufferAndDumpToS const ReadBufferAndDumpToStreamOptions &options) { assert(options.GetStream() && "need a Stream to print the string to"); - return DumpUTFBufferToStream(ConvertUTF32toUTF8, options); + return DumpUTFBufferToStream(llvm::ConvertUTF32toUTF8, options); } } // namespace formatters Modified: lldb/trunk/source/Plugins/Process/minidump/MinidumpTypes.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/minidump/MinidumpTypes.cpp?rev=282822&r1=282821&r2=282822&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Process/minidump/MinidumpTypes.cpp (original) +++ lldb/trunk/source/Plugins/Process/minidump/MinidumpTypes.cpp Thu Sep 29 19:38:45 2016 @@ -49,7 +49,7 @@ lldb_private::minidump::parseMinidumpStr if (error.Fail() || *source_length > data.size() || *source_length % 2 != 0) return llvm::None; - auto source_start = reinterpret_cast<const UTF16 *>(data.data()); + auto source_start = reinterpret_cast<const llvm::UTF16 *>(data.data()); // source_length is the length of the string in bytes // we need the length of the string in UTF-16 characters/code points (16 bits // per char) @@ -57,12 +57,12 @@ lldb_private::minidump::parseMinidumpStr const auto source_end = source_start + (*source_length) / 2; // resize to worst case length result.resize(UNI_MAX_UTF8_BYTES_PER_CODE_POINT * (*source_length) / 2); - auto result_start = reinterpret_cast<UTF8 *>(&result[0]); + auto result_start = reinterpret_cast<llvm::UTF8 *>(&result[0]); const auto result_end = result_start + result.size(); - ConvertUTF16toUTF8(&source_start, source_end, &result_start, result_end, - strictConversion); + llvm::ConvertUTF16toUTF8(&source_start, source_end, &result_start, result_end, + llvm::strictConversion); const auto result_size = - std::distance(reinterpret_cast<UTF8 *>(&result[0]), result_start); + std::distance(reinterpret_cast<llvm::UTF8 *>(&result[0]), result_start); result.resize(result_size); // shrink to actual length return result; _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits