Nikolay Sivov : oleaut32: Fix buffer increment step for VT_RECORD case doing SafeArrayCopyData().
Alexandre Julliard
julliard at winehq.org
Mon Feb 24 15:42:30 CST 2014
Module: wine
Branch: master
Commit: 4da741daf16f041f0222f4fb71ef648d759251df
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4da741daf16f041f0222f4fb71ef648d759251df
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Mon Feb 24 08:15:59 2014 +0400
oleaut32: Fix buffer increment step for VT_RECORD case doing SafeArrayCopyData().
---
dlls/oleaut32/safearray.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/dlls/oleaut32/safearray.c b/dlls/oleaut32/safearray.c
index f66cc80..4801f3b 100644
--- a/dlls/oleaut32/safearray.c
+++ b/dlls/oleaut32/safearray.c
@@ -401,7 +401,6 @@ static HRESULT SAFEARRAY_CopyData(SAFEARRAY *psa, SAFEARRAY *dest)
}
else if (psa->fFeatures & FADF_RECORD)
{
- const SAFEARRAYBOUND* psab = psa->rgsabound;
BYTE *dest_data = dest->pvData;
BYTE *src_data = psa->pvData;
IRecordInfo *record;
@@ -412,11 +411,14 @@ static HRESULT SAFEARRAY_CopyData(SAFEARRAY *psa, SAFEARRAY *dest)
/* RecordCopy() clears destination record */
hr = IRecordInfo_RecordCopy(record, src_data, dest_data);
if (FAILED(hr)) break;
- src_data += psab->cElements;
- dest_data += psab->cElements;
+ src_data += psa->cbElements;
+ dest_data += psa->cbElements;
}
SafeArraySetRecordInfo(dest, record);
+ /* This value is set to 32 bytes by default on descriptor creation,
+ update with actual structure size. */
+ dest->cbElements = psa->cbElements;
IRecordInfo_Release(record);
}
else if (psa->fFeatures & (FADF_UNKNOWN|FADF_DISPATCH))
More information about the wine-cvs
mailing list