[llvm] r343291 - [pdb] Simplify the code by replacing a few string conversions with calls to invokeBstrMethod()

Aaron Smith via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 27 19:32:08 PDT 2018


Author: asmith
Date: Thu Sep 27 19:32:07 2018
New Revision: 343291

URL: http://llvm.org/viewvc/llvm-project?rev=343291&view=rev
Log:
[pdb] Simplify the code by replacing a few string conversions with calls to invokeBstrMethod()

Reviewers: aleksandr.urakov, zturner, llvm-commits

Reviewed By: zturner

Differential Revision: https://reviews.llvm.org/D52624

Modified:
    llvm/trunk/lib/DebugInfo/PDB/DIA/DIADataStream.cpp
    llvm/trunk/lib/DebugInfo/PDB/DIA/DIAEnumTables.cpp
    llvm/trunk/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp
    llvm/trunk/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp
    llvm/trunk/lib/DebugInfo/PDB/DIA/DIATable.cpp

Modified: llvm/trunk/lib/DebugInfo/PDB/DIA/DIADataStream.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/DIA/DIADataStream.cpp?rev=343291&r1=343290&r2=343291&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/DIA/DIADataStream.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/DIA/DIADataStream.cpp Thu Sep 27 19:32:07 2018
@@ -8,8 +8,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/DebugInfo/PDB/DIA/DIADataStream.h"
-#include "llvm/ADT/ArrayRef.h"
-#include "llvm/Support/ConvertUTF.h"
+#include "llvm/DebugInfo/PDB/DIA/DIAUtils.h"
 
 using namespace llvm;
 using namespace llvm::pdb;
@@ -23,16 +22,7 @@ uint32_t DIADataStream::getRecordCount()
 }
 
 std::string DIADataStream::getName() const {
-  CComBSTR Name16;
-  if (S_OK != StreamData->get_name(&Name16))
-    return std::string();
-
-  std::string Name8;
-  llvm::ArrayRef<char> Name16Bytes(reinterpret_cast<char *>(Name16.m_str),
-                                   Name16.ByteLength());
-  if (!llvm::convertUTF16ToUTF8String(Name16Bytes, Name8))
-    return std::string();
-  return Name8;
+  return invokeBstrMethod(*StreamData, &IDiaEnumDebugStreamData::get_name);
 }
 
 llvm::Optional<DIADataStream::RecordType>

Modified: llvm/trunk/lib/DebugInfo/PDB/DIA/DIAEnumTables.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/DIA/DIAEnumTables.cpp?rev=343291&r1=343290&r2=343291&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/DIA/DIAEnumTables.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/DIA/DIAEnumTables.cpp Thu Sep 27 19:32:07 2018
@@ -13,9 +13,8 @@
 using namespace llvm;
 using namespace llvm::pdb;
 
-DIAEnumTables::DIAEnumTables(
-  CComPtr<IDiaEnumTables> DiaEnumerator)
-  : Enumerator(DiaEnumerator) {}
+DIAEnumTables::DIAEnumTables(CComPtr<IDiaEnumTables> DiaEnumerator)
+    : Enumerator(DiaEnumerator) {}
 
 uint32_t DIAEnumTables::getChildCount() const {
   LONG Count = 0;

Modified: llvm/trunk/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp?rev=343291&r1=343290&r2=343291&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp Thu Sep 27 19:32:07 2018
@@ -15,6 +15,7 @@
 #include "llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h"
 #include "llvm/DebugInfo/PDB/DIA/DIALineNumber.h"
 #include "llvm/DebugInfo/PDB/DIA/DIASession.h"
+#include "llvm/DebugInfo/PDB/DIA/DIAUtils.h"
 #include "llvm/DebugInfo/PDB/PDBExtras.h"
 #include "llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h"
 #include "llvm/DebugInfo/PDB/PDBSymbolTypePointer.h"
@@ -115,16 +116,7 @@ RetType PrivateGetDIAValue(IDiaSymbol *S
 std::string
 PrivateGetDIAValue(IDiaSymbol *Symbol,
                    HRESULT (__stdcall IDiaSymbol::*Method)(BSTR *)) {
-  CComBSTR Result16;
-  if (S_OK != (Symbol->*Method)(&Result16))
-    return std::string();
-
-  const char *SrcBytes = reinterpret_cast<const char *>(Result16.m_str);
-  llvm::ArrayRef<char> SrcByteArray(SrcBytes, Result16.ByteLength());
-  std::string Result8;
-  if (!llvm::convertUTF16ToUTF8String(SrcByteArray, Result8))
-    return std::string();
-  return Result8;
+  return invokeBstrMethod(*Symbol, Method);
 }
 
 codeview::GUID

Modified: llvm/trunk/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp?rev=343291&r1=343290&r2=343291&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp Thu Sep 27 19:32:07 2018
@@ -8,12 +8,11 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/DebugInfo/PDB/DIA/DIASourceFile.h"
-#include "llvm/ADT/ArrayRef.h"
 #include "llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h"
 #include "llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h"
 #include "llvm/DebugInfo/PDB/DIA/DIASession.h"
+#include "llvm/DebugInfo/PDB/DIA/DIAUtils.h"
 #include "llvm/DebugInfo/PDB/PDBSymbolCompiland.h"
-#include "llvm/Support/ConvertUTF.h"
 
 using namespace llvm;
 using namespace llvm::pdb;
@@ -23,16 +22,7 @@ DIASourceFile::DIASourceFile(const DIASe
     : Session(PDBSession), SourceFile(DiaSourceFile) {}
 
 std::string DIASourceFile::getFileName() const {
-  CComBSTR FileName16;
-  HRESULT Result = SourceFile->get_fileName(&FileName16);
-  if (S_OK != Result)
-    return std::string();
-
-  std::string FileName8;
-  llvm::ArrayRef<char> FileNameBytes(reinterpret_cast<char *>(FileName16.m_str),
-                                     FileName16.ByteLength());
-  llvm::convertUTF16ToUTF8String(FileNameBytes, FileName8);
-  return FileName8;
+  return invokeBstrMethod(*SourceFile, &IDiaSourceFile::get_fileName);
 }
 
 uint32_t DIASourceFile::getUniqueId() const {

Modified: llvm/trunk/lib/DebugInfo/PDB/DIA/DIATable.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/DIA/DIATable.cpp?rev=343291&r1=343290&r2=343291&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/DIA/DIATable.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/DIA/DIATable.cpp Thu Sep 27 19:32:07 2018
@@ -8,14 +8,12 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/DebugInfo/PDB/DIA/DIATable.h"
-#include "llvm/ADT/ArrayRef.h"
-#include "llvm/Support/ConvertUTF.h"
+#include "llvm/DebugInfo/PDB/DIA/DIAUtils.h"
 
 using namespace llvm;
 using namespace llvm::pdb;
 
-DIATable::DIATable(CComPtr<IDiaTable> DiaTable)
-  : Table(DiaTable) {}
+DIATable::DIATable(CComPtr<IDiaTable> DiaTable) : Table(DiaTable) {}
 
 uint32_t DIATable::getItemCount() const {
   LONG Count = 0;
@@ -23,16 +21,7 @@ uint32_t DIATable::getItemCount() const
 }
 
 std::string DIATable::getName() const {
-  CComBSTR Name16;
-  if (S_OK != Table->get_name(&Name16))
-    return std::string();
-
-  std::string Name8;
-  llvm::ArrayRef<char> Name16Bytes(reinterpret_cast<char *>(Name16.m_str),
-                                   Name16.ByteLength());
-  if (!llvm::convertUTF16ToUTF8String(Name16Bytes, Name8))
-    return std::string();
-  return Name8;
+  return invokeBstrMethod(*Table, &IDiaTable::get_name);
 }
 
 PDB_TableType DIATable::getTableType() const {




More information about the llvm-commits mailing list