summaryrefslogtreecommitdiff
path: root/src/zap/zapheaders.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/zap/zapheaders.h')
-rw-r--r--src/zap/zapheaders.h34
1 files changed, 25 insertions, 9 deletions
diff --git a/src/zap/zapheaders.h b/src/zap/zapheaders.h
index 12b0a18a3d..0755c0ed2d 100644
--- a/src/zap/zapheaders.h
+++ b/src/zap/zapheaders.h
@@ -234,23 +234,22 @@ public:
class ZapDebugDirectory : public ZapNode
{
ZapNode * m_pNGenPdbDebugData;
- IMAGE_DEBUG_DIRECTORY m_debugDirectory;
- ZapNode * m_pDebugData;
+ DWORD m_nDebugDirectory;
+ IMAGE_DEBUG_DIRECTORY * m_pDebugDirectory;
+ ZapNode ** m_ppDebugData;
public:
- ZapDebugDirectory(ZapNode *pNGenPdbDebugData, PIMAGE_DEBUG_DIRECTORY pDebugDirectory, ZapNode * pDebugData)
+ ZapDebugDirectory(ZapNode *pNGenPdbDebugData, DWORD nDebugDirectory, PIMAGE_DEBUG_DIRECTORY pDebugDirectory, ZapNode ** ppDebugData)
: m_pNGenPdbDebugData(pNGenPdbDebugData),
- m_pDebugData(pDebugData)
+ m_nDebugDirectory(nDebugDirectory),
+ m_pDebugDirectory(pDebugDirectory),
+ m_ppDebugData(ppDebugData)
{
- if (pDebugDirectory == NULL)
- memset(&m_debugDirectory, 0, sizeof(IMAGE_DEBUG_DIRECTORY));
- else
- memcpy(&m_debugDirectory, pDebugDirectory, sizeof(IMAGE_DEBUG_DIRECTORY));
}
virtual DWORD GetSize()
{
- return m_pDebugData ? sizeof(IMAGE_DEBUG_DIRECTORY) * 2 : sizeof(IMAGE_DEBUG_DIRECTORY);
+ return sizeof(IMAGE_DEBUG_DIRECTORY) * (m_nDebugDirectory + 1);
}
virtual UINT GetAlignment()
@@ -269,6 +268,23 @@ public:
};
//
+// PE Style exports. Currently can only save an empty list of exports
+// but this is useful because it avoids the DLL being seen as Resource Only
+// (which then causes SymServer to avoid copying its PDB to the cloud).
+//
+
+class ZapPEExports : public ZapNode
+{
+ LPCWSTR m_dllFileName; // Just he DLL name without the path.
+
+public:
+ ZapPEExports(LPCWSTR dllPath);
+ virtual DWORD GetSize();
+ virtual UINT GetAlignment() { return sizeof(DWORD); }
+ virtual void Save(ZapWriter * pZapWriter);
+};
+
+//
// List of all sections for diagnostic purposes
class ZapVirtualSectionsTable : public ZapNode