Piotr Caban : oleaut32: Fix importfile searching in ctl2_alloc_importinfo.
Alexandre Julliard
julliard at winehq.org
Wed Feb 24 10:21:34 CST 2010
Module: wine
Branch: master
Commit: e8d117f5a1a03788367f674d4c1367084b76e387
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e8d117f5a1a03788367f674d4c1367084b76e387
Author: Piotr Caban <piotr at codeweavers.com>
Date: Wed Feb 24 14:25:55 2010 +0100
oleaut32: Fix importfile searching in ctl2_alloc_importinfo.
---
dlls/oleaut32/typelib2.c | 19 ++++++++++---------
1 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/dlls/oleaut32/typelib2.c b/dlls/oleaut32/typelib2.c
index 5c1c702..7ccb400 100644
--- a/dlls/oleaut32/typelib2.c
+++ b/dlls/oleaut32/typelib2.c
@@ -692,19 +692,20 @@ static int ctl2_alloc_string(
* Failure: -1 (this is invariably an out of memory condition).
*/
static int ctl2_alloc_importinfo(
- ICreateTypeLib2Impl *This, /* [I] The type library to allocate in. */
- MSFT_ImpInfo *impinfo) /* [I] The import information to store. */
+ ICreateTypeLib2Impl *This, /* [I] The type library to allocate in. */
+ MSFT_ImpInfo *impinfo) /* [I] The import information to store. */
{
int offset;
MSFT_ImpInfo *impinfo_space;
- for (offset = 0;
- offset < This->typelib_segdir[MSFT_SEG_IMPORTINFO].length;
- offset += sizeof(MSFT_ImpInfo)) {
- if (!memcmp(&(This->typelib_segment_data[MSFT_SEG_IMPORTINFO][offset]),
- impinfo, sizeof(MSFT_ImpInfo))) {
- return offset;
- }
+ impinfo_space = (MSFT_ImpInfo*)&This->typelib_segment_data[MSFT_SEG_IMPORTINFO][0];
+ for (offset=0; offset<This->typelib_segdir[MSFT_SEG_IMPORTINFO].length;
+ offset+=sizeof(MSFT_ImpInfo)) {
+ if(impinfo_space->oImpFile == impinfo->oImpFile
+ && impinfo_space->oGuid == impinfo->oGuid)
+ return offset;
+
+ impinfo_space += 1;
}
impinfo->flags |= This->typelib_header.nimpinfos++;
More information about the wine-cvs
mailing list