aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/burnextension.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn/engine/burnextension.cpp')
-rw-r--r--src/burn/engine/burnextension.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/burn/engine/burnextension.cpp b/src/burn/engine/burnextension.cpp
index 475df1c5..ee4b1542 100644
--- a/src/burn/engine/burnextension.cpp
+++ b/src/burn/engine/burnextension.cpp
@@ -26,6 +26,7 @@ EXTERN_C HRESULT BurnExtensionParseFromXml(
26 IXMLDOMNodeList* pixnNodes = NULL; 26 IXMLDOMNodeList* pixnNodes = NULL;
27 IXMLDOMNode* pixnNode = NULL; 27 IXMLDOMNode* pixnNode = NULL;
28 DWORD cNodes = 0; 28 DWORD cNodes = 0;
29 LPWSTR scz = NULL;
29 30
30 // Select BundleExtension nodes. 31 // Select BundleExtension nodes.
31 hr = XmlSelectNodes(pixnBundle, L"BundleExtension", &pixnNodes); 32 hr = XmlSelectNodes(pixnBundle, L"BundleExtension", &pixnNodes);
@@ -59,11 +60,11 @@ EXTERN_C HRESULT BurnExtensionParseFromXml(
59 ExitOnFailure(hr, "Failed to get @Id."); 60 ExitOnFailure(hr, "Failed to get @Id.");
60 61
61 // @EntryPayloadId 62 // @EntryPayloadId
62 hr = XmlGetAttributeEx(pixnNode, L"EntryPayloadId", &pExtension->sczEntryPayloadId); 63 hr = XmlGetAttributeEx(pixnNode, L"EntryPayloadSourcePath", &scz);
63 ExitOnFailure(hr, "Failed to get @EntryPayloadId."); 64 ExitOnFailure(hr, "Failed to get @EntryPayloadSourcePath.");
64 65
65 hr = PayloadFindById(pBaPayloads, pExtension->sczEntryPayloadId, &pExtension->pEntryPayload); 66 hr = PayloadFindEmbeddedBySourcePath(pBaPayloads->sdhPayloads, scz, &pExtension->pEntryPayload);
66 ExitOnFailure(hr, "Failed to find BundleExtension EntryPayload '%ls'.", pExtension->sczEntryPayloadId); 67 ExitOnFailure(hr, "Failed to find BundleExtension EntryPayload '%ls'.", pExtension->sczId);
67 68
68 // prepare next iteration 69 // prepare next iteration
69 ReleaseNullObject(pixnNode); 70 ReleaseNullObject(pixnNode);
@@ -72,6 +73,7 @@ EXTERN_C HRESULT BurnExtensionParseFromXml(
72 hr = S_OK; 73 hr = S_OK;
73 74
74LExit: 75LExit:
76 ReleaseStr(scz);
75 ReleaseObject(pixnNode); 77 ReleaseObject(pixnNode);
76 ReleaseObject(pixnNodes); 78 ReleaseObject(pixnNodes);
77 79
@@ -92,7 +94,6 @@ EXTERN_C void BurnExtensionUninitialize(
92 { 94 {
93 BURN_EXTENSION* pExtension = &pBurnExtensions->rgExtensions[i]; 95 BURN_EXTENSION* pExtension = &pBurnExtensions->rgExtensions[i];
94 96
95 ReleaseStr(pExtension->sczEntryPayloadId);
96 ReleaseStr(pExtension->sczId); 97 ReleaseStr(pExtension->sczId);
97 } 98 }
98 MemFree(pBurnExtensions->rgExtensions); 99 MemFree(pBurnExtensions->rgExtensions);