aboutsummaryrefslogtreecommitdiff
path: root/src/libs/dutil/WixToolset.DUtil/memutil.cpp
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-06-03 16:23:17 -0500
committerSean Hall <r.sean.hall@gmail.com>2021-06-04 14:57:11 -0500
commit13482e726fd148eaa58eb95e358e13e390d63148 (patch)
tree087fb264038cb06922299c2e7aebdc98871e7124 /src/libs/dutil/WixToolset.DUtil/memutil.cpp
parentaec32210e4be3b58a1271e0703ec23130cd9ebe3 (diff)
downloadwix-13482e726fd148eaa58eb95e358e13e390d63148.tar.gz
wix-13482e726fd148eaa58eb95e358e13e390d63148.tar.bz2
wix-13482e726fd148eaa58eb95e358e13e390d63148.zip
Require children of thmutil Billboard elements to be BillboardPanel.
Diffstat (limited to 'src/libs/dutil/WixToolset.DUtil/memutil.cpp')
-rw-r--r--src/libs/dutil/WixToolset.DUtil/memutil.cpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/libs/dutil/WixToolset.DUtil/memutil.cpp b/src/libs/dutil/WixToolset.DUtil/memutil.cpp
index c805a9c0..977c189e 100644
--- a/src/libs/dutil/WixToolset.DUtil/memutil.cpp
+++ b/src/libs/dutil/WixToolset.DUtil/memutil.cpp
@@ -214,6 +214,27 @@ LExit:
214} 214}
215 215
216 216
217extern "C" HRESULT DAPI MemEnsureArraySizeForNewItems(
218 __inout LPVOID* ppvArray,
219 __in DWORD cArray,
220 __in DWORD cNewItems,
221 __in SIZE_T cbArrayType,
222 __in DWORD dwGrowthCount
223 )
224{
225 HRESULT hr = S_OK;
226 DWORD cNew = 0;
227
228 hr = ::DWordAdd(cArray, cNewItems, &cNew);
229 MemExitOnFailure(hr, "Integer overflow when calculating new element count.");
230
231 hr = MemEnsureArraySize(ppvArray, cNew, cbArrayType, dwGrowthCount);
232
233LExit:
234 return hr;
235}
236
237
217extern "C" HRESULT DAPI MemInsertIntoArray( 238extern "C" HRESULT DAPI MemInsertIntoArray(
218 __deref_inout_bcount((cExistingArray + cInsertItems) * cbArrayType) LPVOID* ppvArray, 239 __deref_inout_bcount((cExistingArray + cInsertItems) * cbArrayType) LPVOID* ppvArray,
219 __in DWORD dwInsertIndex, 240 __in DWORD dwInsertIndex,
@@ -232,7 +253,7 @@ extern "C" HRESULT DAPI MemInsertIntoArray(
232 ExitFunction1(hr = S_OK); 253 ExitFunction1(hr = S_OK);
233 } 254 }
234 255
235 hr = MemEnsureArraySize(ppvArray, cExistingArray + cInsertItems, cbArrayType, dwGrowthCount); 256 hr = MemEnsureArraySizeForNewItems(ppvArray, cExistingArray, cInsertItems, cbArrayType, dwGrowthCount);
236 MemExitOnFailure(hr, "Failed to resize array while inserting items"); 257 MemExitOnFailure(hr, "Failed to resize array while inserting items");
237 258
238 pbArray = reinterpret_cast<BYTE *>(*ppvArray); 259 pbArray = reinterpret_cast<BYTE *>(*ppvArray);