Huw Davies : oleaut32: Mask off the lsb from the vtbl offset. This is set when the user specifies an offset in ICreateTypeInfo.

Alexandre Julliard julliard at winehq.org
Thu Apr 7 07:36:54 CDT 2011


Module: wine
Branch: stable
Commit: 8217a8aef76db84f84cef64afbd97bb04d37b523
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=8217a8aef76db84f84cef64afbd97bb04d37b523

Author: Huw Davies <huw at codeweavers.com>
Date:   Thu Feb 24 09:42:58 2011 +0000

oleaut32: Mask off the lsb from the vtbl offset. This is set when the user specifies an offset in ICreateTypeInfo.
(cherry picked from commit 060c8daf7facf6947e2b52e06a7d2ce771ba77b3)

---

 dlls/oleaut32/typelib.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c
index 7a56e93..07099b4 100644
--- a/dlls/oleaut32/typelib.c
+++ b/dlls/oleaut32/typelib.c
@@ -1945,7 +1945,7 @@ MSFT_DoFuncs(TLBContext*     pcx,
         (*pptfd)->funcdesc.callconv   =  (pFuncRec->FKCCIC) >> 8 & 0xF;
         (*pptfd)->funcdesc.cParams    =   pFuncRec->nrargs  ;
         (*pptfd)->funcdesc.cParamsOpt =   pFuncRec->nroargs ;
-        (*pptfd)->funcdesc.oVft       =   pFuncRec->VtableOffset;
+        (*pptfd)->funcdesc.oVft       =   pFuncRec->VtableOffset & ~1;
         (*pptfd)->funcdesc.wFuncFlags =   LOWORD(pFuncRec->Flags) ;
 
         MSFT_GetTdesc(pcx,
@@ -3514,7 +3514,7 @@ static void SLTG_DoFuncs(char *pBlk, char *pFirstItem, ITypeInfoImpl *pTI,
 	(*ppFuncDesc)->funcdesc.callconv = pFunc->nacc & 0x7;
 	(*ppFuncDesc)->funcdesc.cParams = pFunc->nacc >> 3;
 	(*ppFuncDesc)->funcdesc.cParamsOpt = (pFunc->retnextopt & 0x7e) >> 1;
-	(*ppFuncDesc)->funcdesc.oVft = pFunc->vtblpos;
+	(*ppFuncDesc)->funcdesc.oVft = pFunc->vtblpos & ~1;
 
 	if(pFunc->magic & SLTG_FUNCTION_FLAGS_PRESENT)
 	    (*ppFuncDesc)->funcdesc.wFuncFlags = pFunc->funcflags;




More information about the wine-cvs mailing list