You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.246
Former-commit-id: 0c7ce5b1a7851e13f22acfd379b7f9fb304e4833
This commit is contained in:
parent
a7724cd563
commit
279aa8f685
62
external/llvm/lib/DebugInfo/PDB/DIA/DIATable.cpp
vendored
Normal file
62
external/llvm/lib/DebugInfo/PDB/DIA/DIATable.cpp
vendored
Normal file
@ -0,0 +1,62 @@
|
||||
//===- DIATable.cpp - DIA implementation of IPDBTable -----------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/DebugInfo/PDB/DIA/DIATable.h"
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
#include "llvm/Support/ConvertUTF.h"
|
||||
|
||||
using namespace llvm;
|
||||
using namespace llvm::pdb;
|
||||
|
||||
DIATable::DIATable(CComPtr<IDiaTable> DiaTable)
|
||||
: Table(DiaTable) {}
|
||||
|
||||
uint32_t DIATable::getItemCount() const {
|
||||
LONG Count = 0;
|
||||
return (S_OK == Table->get_Count(&Count)) ? Count : 0;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
PDB_TableType DIATable::getTableType() const {
|
||||
CComBSTR Name16;
|
||||
if (S_OK != Table->get_name(&Name16))
|
||||
return PDB_TableType::TableInvalid;
|
||||
|
||||
if (Name16 == DiaTable_Symbols)
|
||||
return PDB_TableType::Symbols;
|
||||
if (Name16 == DiaTable_SrcFiles)
|
||||
return PDB_TableType::SourceFiles;
|
||||
if (Name16 == DiaTable_Sections)
|
||||
return PDB_TableType::SectionContribs;
|
||||
if (Name16 == DiaTable_LineNums)
|
||||
return PDB_TableType::LineNumbers;
|
||||
if (Name16 == DiaTable_SegMap)
|
||||
return PDB_TableType::Segments;
|
||||
if (Name16 == DiaTable_InjSrc)
|
||||
return PDB_TableType::InjectedSources;
|
||||
if (Name16 == DiaTable_FrameData)
|
||||
return PDB_TableType::FrameData;
|
||||
if (Name16 == DiaTable_InputAssemblyFiles)
|
||||
return PDB_TableType::InputAssemblyFiles;
|
||||
if (Name16 == DiaTable_Dbg)
|
||||
return PDB_TableType::Dbg;
|
||||
return PDB_TableType::TableInvalid;
|
||||
}
|
Reference in New Issue
Block a user