Path: blob/main/contrib/llvm-project/llvm/lib/DebugInfo/PDB/DIA/DIAEnumFrameData.cpp
35294 views
//==- DIAEnumFrameData.cpp ---------------------------------------*- C++ -*-==//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//78#include "llvm/DebugInfo/PDB/DIA/DIAEnumFrameData.h"9#include "llvm/DebugInfo/PDB/DIA/DIAFrameData.h"10#include "llvm/DebugInfo/PDB/DIA/DIASession.h"1112using namespace llvm::pdb;1314DIAEnumFrameData::DIAEnumFrameData(CComPtr<IDiaEnumFrameData> DiaEnumerator)15: Enumerator(DiaEnumerator) {}1617uint32_t DIAEnumFrameData::getChildCount() const {18LONG Count = 0;19return (S_OK == Enumerator->get_Count(&Count)) ? Count : 0;20}2122std::unique_ptr<IPDBFrameData>23DIAEnumFrameData::getChildAtIndex(uint32_t Index) const {24CComPtr<IDiaFrameData> Item;25if (S_OK != Enumerator->Item(Index, &Item))26return nullptr;2728return std::unique_ptr<IPDBFrameData>(new DIAFrameData(Item));29}3031std::unique_ptr<IPDBFrameData> DIAEnumFrameData::getNext() {32CComPtr<IDiaFrameData> Item;33ULONG NumFetched = 0;34if (S_OK != Enumerator->Next(1, &Item, &NumFetched))35return nullptr;3637return std::unique_ptr<IPDBFrameData>(new DIAFrameData(Item));38}3940void DIAEnumFrameData::reset() { Enumerator->Reset(); }414243