You've already forked linux-packaging-mono
acceptance-tests
data
debian
docs
external
Newtonsoft.Json
api-doc-tools
api-snapshot
aspnetwebstack
binary-reference-assemblies
bockbuild
boringssl
cecil
cecil-legacy
corefx
corert
helix-binaries
ikdasm
ikvm
illinker-test-assets
linker
llvm
bindings
cmake
docs
examples
include
lib
Analysis
AsmParser
BinaryFormat
Bitcode
CodeGen
DebugInfo
CodeView
DWARF
MSF
PDB
DIA
DIADataStream.cpp
DIAEnumDebugStreams.cpp
DIAEnumLineNumbers.cpp
DIAEnumSourceFiles.cpp
DIAEnumSymbols.cpp
DIAEnumTables.cpp
DIAError.cpp
DIALineNumber.cpp
DIARawSymbol.cpp
DIASession.cpp
DIASourceFile.cpp
DIATable.cpp
Native
CMakeLists.txt
GenericError.cpp
IPDBSourceFile.cpp
LLVMBuild.txt
PDB.cpp
PDBContext.cpp
PDBExtras.cpp
PDBInterfaceAnchors.cpp
PDBSymDumper.cpp
PDBSymbol.cpp
PDBSymbolAnnotation.cpp
PDBSymbolBlock.cpp
PDBSymbolCompiland.cpp
PDBSymbolCompilandDetails.cpp
PDBSymbolCompilandEnv.cpp
PDBSymbolCustom.cpp
PDBSymbolData.cpp
PDBSymbolExe.cpp
PDBSymbolFunc.cpp
PDBSymbolFuncDebugEnd.cpp
PDBSymbolFuncDebugStart.cpp
PDBSymbolLabel.cpp
PDBSymbolPublicSymbol.cpp
PDBSymbolThunk.cpp
PDBSymbolTypeArray.cpp
PDBSymbolTypeBaseClass.cpp
PDBSymbolTypeBuiltin.cpp
PDBSymbolTypeCustom.cpp
PDBSymbolTypeDimension.cpp
PDBSymbolTypeEnum.cpp
PDBSymbolTypeFriend.cpp
PDBSymbolTypeFunctionArg.cpp
PDBSymbolTypeFunctionSig.cpp
PDBSymbolTypeManaged.cpp
PDBSymbolTypePointer.cpp
PDBSymbolTypeTypedef.cpp
PDBSymbolTypeUDT.cpp
PDBSymbolTypeVTable.cpp
PDBSymbolTypeVTableShape.cpp
PDBSymbolUnknown.cpp
PDBSymbolUsingNamespace.cpp
UDTLayout.cpp
Symbolize
CMakeLists.txt
LLVMBuild.txt
Demangle
ExecutionEngine
FuzzMutate
Fuzzer
IR
IRReader
LTO
LineEditor
Linker
MC
Object
ObjectYAML
Option
Passes
ProfileData
Support
TableGen
Target
Testing
ToolDrivers
Transforms
WindowsManifest
XRay
CMakeLists.txt
LLVMBuild.txt
projects
resources
runtimes
scripts
test
tools
unittests
utils
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in
nuget-buildtasks
nunit-lite
roslyn-binaries
rx
xunit-binaries
ikvm-native
libgc
llvm
m4
man
mcs
mk
mono
msvc
po
runtime
samples
scripts
support
tools
COPYING.LIB
LICENSE
Makefile.am
Makefile.in
NEWS
README.md
acinclude.m4
aclocal.m4
autogen.sh
code_of_conduct.md
compile
config.guess
config.h.in
config.rpath
config.sub
configure.REMOVED.git-id
configure.ac.REMOVED.git-id
depcomp
install-sh
ltmain.sh.REMOVED.git-id
missing
mkinstalldirs
mono-uninstalled.pc.in
test-driver
winconfig.h
52 lines
1.6 KiB
C++
52 lines
1.6 KiB
C++
![]() |
//==- DIAEnumLineNumbers.cpp - DIA Line Number Enumerator impl ---*- 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/DIAEnumLineNumbers.h"
|
||
|
#include "llvm/DebugInfo/PDB/DIA/DIALineNumber.h"
|
||
|
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
|
||
|
|
||
|
using namespace llvm;
|
||
|
using namespace llvm::pdb;
|
||
|
|
||
|
DIAEnumLineNumbers::DIAEnumLineNumbers(
|
||
|
CComPtr<IDiaEnumLineNumbers> DiaEnumerator)
|
||
|
: Enumerator(DiaEnumerator) {}
|
||
|
|
||
|
uint32_t DIAEnumLineNumbers::getChildCount() const {
|
||
|
LONG Count = 0;
|
||
|
return (S_OK == Enumerator->get_Count(&Count)) ? Count : 0;
|
||
|
}
|
||
|
|
||
|
std::unique_ptr<IPDBLineNumber>
|
||
|
DIAEnumLineNumbers::getChildAtIndex(uint32_t Index) const {
|
||
|
CComPtr<IDiaLineNumber> Item;
|
||
|
if (S_OK != Enumerator->Item(Index, &Item))
|
||
|
return nullptr;
|
||
|
|
||
|
return std::unique_ptr<IPDBLineNumber>(new DIALineNumber(Item));
|
||
|
}
|
||
|
|
||
|
std::unique_ptr<IPDBLineNumber> DIAEnumLineNumbers::getNext() {
|
||
|
CComPtr<IDiaLineNumber> Item;
|
||
|
ULONG NumFetched = 0;
|
||
|
if (S_OK != Enumerator->Next(1, &Item, &NumFetched))
|
||
|
return nullptr;
|
||
|
|
||
|
return std::unique_ptr<IPDBLineNumber>(new DIALineNumber(Item));
|
||
|
}
|
||
|
|
||
|
void DIAEnumLineNumbers::reset() { Enumerator->Reset(); }
|
||
|
|
||
|
DIAEnumLineNumbers *DIAEnumLineNumbers::clone() const {
|
||
|
CComPtr<IDiaEnumLineNumbers> EnumeratorClone;
|
||
|
if (S_OK != Enumerator->Clone(&EnumeratorClone))
|
||
|
return nullptr;
|
||
|
return new DIAEnumLineNumbers(EnumeratorClone);
|
||
|
}
|