aboutsummaryrefslogtreecommitdiff
path: root/src/engine/package.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/package.cpp')
-rw-r--r--src/engine/package.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/engine/package.cpp b/src/engine/package.cpp
index 6ff59fe4..ecf1488b 100644
--- a/src/engine/package.cpp
+++ b/src/engine/package.cpp
@@ -349,7 +349,7 @@ extern "C" void PackageUninitialize(
349 MemFree(pPackage->rgDependencyProviders); 349 MemFree(pPackage->rgDependencyProviders);
350 } 350 }
351 351
352 ReleaseMem(pPackage->rgPayloads); 352 ReleaseMem(pPackage->payloads.rgpPayloads);
353 353
354 switch (pPackage->type) 354 switch (pPackage->type)
355 { 355 {
@@ -567,16 +567,14 @@ static HRESULT ParsePayloadRefsFromXml(
567 } 567 }
568 568
569 // allocate memory for payload pointers 569 // allocate memory for payload pointers
570 pPackage->rgPayloads = (BURN_PACKAGE_PAYLOAD*)MemAlloc(sizeof(BURN_PACKAGE_PAYLOAD) * cNodes, TRUE); 570 pPackage->payloads.rgpPayloads = (BURN_PAYLOAD**)MemAlloc(sizeof(BURN_PAYLOAD*) * cNodes, TRUE);
571 ExitOnNull(pPackage->rgPayloads, hr, E_OUTOFMEMORY, "Failed to allocate memory for package payloads."); 571 ExitOnNull(pPackage->payloads.rgpPayloads, hr, E_OUTOFMEMORY, "Failed to allocate memory for package payloads.");
572 572
573 pPackage->cPayloads = cNodes; 573 pPackage->payloads.cPayloads = cNodes;
574 574
575 // parse package elements 575 // parse package elements
576 for (DWORD i = 0; i < cNodes; ++i) 576 for (DWORD i = 0; i < cNodes; ++i)
577 { 577 {
578 BURN_PACKAGE_PAYLOAD* pPackagePayload = &pPackage->rgPayloads[i];
579
580 hr = XmlNextElement(pixnNodes, &pixnNode, NULL); 578 hr = XmlNextElement(pixnNodes, &pixnNode, NULL);
581 ExitOnFailure(hr, "Failed to get next node."); 579 ExitOnFailure(hr, "Failed to get next node.");
582 580
@@ -585,9 +583,11 @@ static HRESULT ParsePayloadRefsFromXml(
585 ExitOnFailure(hr, "Failed to get Id attribute."); 583 ExitOnFailure(hr, "Failed to get Id attribute.");
586 584
587 // find payload 585 // find payload
588 hr = PayloadFindById(pPayloads, sczId, &pPackagePayload->pPayload); 586 hr = PayloadFindById(pPayloads, sczId, &pPackage->payloads.rgpPayloads[i]);
589 ExitOnFailure(hr, "Failed to find payload."); 587 ExitOnFailure(hr, "Failed to find payload.");
590 588
589 pPackage->payloads.qwTotalSize += pPackage->payloads.rgpPayloads[i]->qwFileSize;
590
591 // prepare next iteration 591 // prepare next iteration
592 ReleaseNullObject(pixnNode); 592 ReleaseNullObject(pixnNode);
593 } 593 }