namespace llvm {
namespace pdb {
-class DIASession;
-
class DIAEnumFrameData : public IPDBEnumChildren<IPDBFrameData> {
public:
- explicit DIAEnumFrameData(const DIASession &PDBSession,
- CComPtr<IDiaEnumFrameData> DiaEnumerator);
+ explicit DIAEnumFrameData(CComPtr<IDiaEnumFrameData> DiaEnumerator);
uint32_t getChildCount() const override;
ChildTypePtr getChildAtIndex(uint32_t Index) const override;
void reset() override;
private:
- const DIASession &Session;
CComPtr<IDiaEnumFrameData> Enumerator;
};
class DIAFrameData : public IPDBFrameData {
public:
- explicit DIAFrameData(const DIASession &PDBSession,
- CComPtr<IDiaFrameData> DiaFrameData);
+ explicit DIAFrameData(CComPtr<IDiaFrameData> DiaFrameData);
uint32_t getAddressOffset() const override;
uint32_t getAddressSection() const override;
uint64_t getVirtualAddress() const override;
private:
- const DIASession &Session;
CComPtr<IDiaFrameData> FrameData;
};
using namespace llvm::pdb;
-DIAEnumFrameData::DIAEnumFrameData(const DIASession &PDBSession,
- CComPtr<IDiaEnumFrameData> DiaEnumerator)
- : Session(PDBSession), Enumerator(DiaEnumerator) {}
+DIAEnumFrameData::DIAEnumFrameData(CComPtr<IDiaEnumFrameData> DiaEnumerator)
+ : Enumerator(DiaEnumerator) {}
uint32_t DIAEnumFrameData::getChildCount() const {
LONG Count = 0;
if (S_OK != Enumerator->Item(Index, &Item))
return nullptr;
- return std::unique_ptr<IPDBFrameData>(new DIAFrameData(Session, Item));
+ return std::unique_ptr<IPDBFrameData>(new DIAFrameData(Item));
}
std::unique_ptr<IPDBFrameData> DIAEnumFrameData::getNext() {
if (S_OK != Enumerator->Next(1, &Item, &NumFetched))
return nullptr;
- return std::unique_ptr<IPDBFrameData>(new DIAFrameData(Session, Item));
+ return std::unique_ptr<IPDBFrameData>(new DIAFrameData(Item));
}
void DIAEnumFrameData::reset() { Enumerator->Reset(); }
using namespace llvm::pdb;
-DIAFrameData::DIAFrameData(const DIASession &PDBSession,
- CComPtr<IDiaFrameData> DiaFrameData)
- : Session(PDBSession), FrameData(DiaFrameData) {}
+DIAFrameData::DIAFrameData(CComPtr<IDiaFrameData> DiaFrameData)
+ : FrameData(DiaFrameData) {}
template <typename ArgType>
ArgType
if (!FD)
return nullptr;
- return llvm::make_unique<DIAEnumFrameData>(*this, FD);
+ return llvm::make_unique<DIAEnumFrameData>(FD);
}