diff --git a/patches/widl-SLTG_Typelib_Support/0024-oleaut32-Add-support-for-decoding-SLTG-function-help.patch b/patches/widl-SLTG_Typelib_Support/0024-oleaut32-Add-support-for-decoding-SLTG-function-help.patch index 5db7dd11..8dd862de 100644 --- a/patches/widl-SLTG_Typelib_Support/0024-oleaut32-Add-support-for-decoding-SLTG-function-help.patch +++ b/patches/widl-SLTG_Typelib_Support/0024-oleaut32-Add-support-for-decoding-SLTG-function-help.patch @@ -1,4 +1,4 @@ -From fc31e1c213619af67684a99aa1d3b4c27ee9617d Mon Sep 17 00:00:00 2001 +From 94e6e18f72a5586fc8077dadc4ea50bd994e02a3 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Tue, 26 Jan 2016 15:41:06 +0800 Subject: [PATCH] oleaut32: Add support for decoding SLTG function help @@ -9,10 +9,10 @@ Subject: [PATCH] oleaut32: Add support for decoding SLTG function help 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/dlls/oleaut32/typelib.c b/dlls/oleaut32/typelib.c -index d5c8191abba..ebf186edc2a 100644 +index 988e6c1b457..9c15254727d 100644 --- a/dlls/oleaut32/typelib.c +++ b/dlls/oleaut32/typelib.c -@@ -4203,7 +4203,8 @@ static void SLTG_DoVars(char *pBlk, char *pFirstItem, ITypeInfoImpl *pTI, unsign +@@ -4199,7 +4199,8 @@ static void SLTG_DoVars(char *pBlk, char *pFirstItem, ITypeInfoImpl *pTI, unsign } static void SLTG_DoFuncs(char *pBlk, char *pFirstItem, ITypeInfoImpl *pTI, @@ -22,9 +22,9 @@ index d5c8191abba..ebf186edc2a 100644 { SLTG_Function *pFunc; unsigned short i; -@@ -4244,6 +4245,9 @@ static void SLTG_DoFuncs(char *pBlk, char *pFirstItem, ITypeInfoImpl *pTI, +@@ -4240,6 +4241,9 @@ static void SLTG_DoFuncs(char *pBlk, char *pFirstItem, ITypeInfoImpl *pTI, else - pFuncDesc->funcdesc.oVft = (pFunc->vtblpos & ~1) * sizeof(void *) / pTI->pTypeLib->ptr_size; + pFuncDesc->funcdesc.oVft = (unsigned short)(pFunc->vtblpos & ~1) * sizeof(void *) / pTI->pTypeLib->ptr_size; + if (pFunc->helpstring != 0xffff) + pFuncDesc->HelpString = decode_string(hlp_strings, pBlk + pFunc->helpstring, pNameTable - pBlk, pTI->pTypeLib); @@ -32,7 +32,7 @@ index d5c8191abba..ebf186edc2a 100644 if(pFunc->magic & SLTG_FUNCTION_FLAGS_PRESENT) pFuncDesc->funcdesc.wFuncFlags = pFunc->funcflags; -@@ -4330,7 +4334,7 @@ static void SLTG_ProcessCoClass(char *pBlk, ITypeInfoImpl *pTI, +@@ -4326,7 +4330,7 @@ static void SLTG_ProcessCoClass(char *pBlk, ITypeInfoImpl *pTI, static void SLTG_ProcessInterface(char *pBlk, ITypeInfoImpl *pTI, char *pNameTable, SLTG_TypeInfoHeader *pTIHeader, @@ -41,7 +41,7 @@ index d5c8191abba..ebf186edc2a 100644 { char *pFirstItem; sltg_ref_lookup_t *ref_lookup = NULL; -@@ -4347,7 +4351,7 @@ static void SLTG_ProcessInterface(char *pBlk, ITypeInfoImpl *pTI, +@@ -4343,7 +4347,7 @@ static void SLTG_ProcessInterface(char *pBlk, ITypeInfoImpl *pTI, } if (pTITail->funcs_off != 0xffff) @@ -50,7 +50,7 @@ index d5c8191abba..ebf186edc2a 100644 free(ref_lookup); -@@ -4392,7 +4396,7 @@ static void SLTG_ProcessAlias(char *pBlk, ITypeInfoImpl *pTI, +@@ -4388,7 +4392,7 @@ static void SLTG_ProcessAlias(char *pBlk, ITypeInfoImpl *pTI, static void SLTG_ProcessDispatch(char *pBlk, ITypeInfoImpl *pTI, char *pNameTable, SLTG_TypeInfoHeader *pTIHeader, @@ -59,7 +59,7 @@ index d5c8191abba..ebf186edc2a 100644 { sltg_ref_lookup_t *ref_lookup = NULL; if (pTIHeader->href_table != 0xffffffff) -@@ -4403,7 +4407,7 @@ static void SLTG_ProcessDispatch(char *pBlk, ITypeInfoImpl *pTI, +@@ -4399,7 +4403,7 @@ static void SLTG_ProcessDispatch(char *pBlk, ITypeInfoImpl *pTI, SLTG_DoVars(pBlk, pBlk + pTITail->vars_off, pTI, pTITail->cVars, pNameTable, ref_lookup); if (pTITail->funcs_off != 0xffff) @@ -68,7 +68,7 @@ index d5c8191abba..ebf186edc2a 100644 if (pTITail->impls_off != 0xffff) SLTG_DoImpls(pBlk + pTITail->impls_off, pTI, FALSE, ref_lookup); -@@ -4427,7 +4431,7 @@ static void SLTG_ProcessEnum(char *pBlk, ITypeInfoImpl *pTI, +@@ -4423,7 +4427,7 @@ static void SLTG_ProcessEnum(char *pBlk, ITypeInfoImpl *pTI, static void SLTG_ProcessModule(char *pBlk, ITypeInfoImpl *pTI, char *pNameTable, SLTG_TypeInfoHeader *pTIHeader, @@ -77,7 +77,7 @@ index d5c8191abba..ebf186edc2a 100644 { sltg_ref_lookup_t *ref_lookup = NULL; if (pTIHeader->href_table != 0xffffffff) -@@ -4438,7 +4442,7 @@ static void SLTG_ProcessModule(char *pBlk, ITypeInfoImpl *pTI, +@@ -4434,7 +4438,7 @@ static void SLTG_ProcessModule(char *pBlk, ITypeInfoImpl *pTI, SLTG_DoVars(pBlk, pBlk + pTITail->vars_off, pTI, pTITail->cVars, pNameTable, ref_lookup); if (pTITail->funcs_off != 0xffff) @@ -86,7 +86,7 @@ index d5c8191abba..ebf186edc2a 100644 free(ref_lookup); if (TRACE_ON(typelib)) dump_TypeInfo(pTI); -@@ -4700,7 +4704,7 @@ static ITypeLib2* ITypeLib2_Constructor_SLTG(LPVOID pLib, DWORD dwTLBLength) +@@ -4696,7 +4700,7 @@ static ITypeLib2* ITypeLib2_Constructor_SLTG(LPVOID pLib, DWORD dwTLBLength) case TKIND_INTERFACE: SLTG_ProcessInterface((char *)(pMemHeader + 1), *ppTypeInfoImpl, pNameTable, @@ -95,7 +95,7 @@ index d5c8191abba..ebf186edc2a 100644 break; case TKIND_COCLASS: -@@ -4715,12 +4719,12 @@ static ITypeLib2* ITypeLib2_Constructor_SLTG(LPVOID pLib, DWORD dwTLBLength) +@@ -4711,12 +4715,12 @@ static ITypeLib2* ITypeLib2_Constructor_SLTG(LPVOID pLib, DWORD dwTLBLength) case TKIND_DISPATCH: SLTG_ProcessDispatch((char *)(pMemHeader + 1), *ppTypeInfoImpl, pNameTable, @@ -111,5 +111,5 @@ index d5c8191abba..ebf186edc2a 100644 default: -- -2.40.1 +2.43.0 diff --git a/staging/upstream-commit b/staging/upstream-commit index 9eb86a9a..46fbd26a 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -19ad5bd598d603617341cbb2beec90bd69fa6349 +7a8c039a5c34fe0c625b3684b4c7026a21dd290e