[Patch] dlls/oleaut32/typelib.c - Via a CVS search, reverse regression to get Kazza working

Stefan Jones cretin at gentoo.org
Thu Jun 26 16:41:27 CDT 2003


On upgrading to Wine 20030618 I found that kazaa lite will no longer
work
and gave me the following error:

No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\SHDOCVW.DLL'
(0x71000000)
Unhandled exception: page fault on read access to 0x00000004 in 32-bit
code (0x411ed9c9).
In 32-bit mode.
0x411ed9c9 (ITypeInfo_fnGetContainingTypeLib+0x49 [typelib.c:4801] in
oleaut32.dll.so): call     *0x4(%edx)
4802          TRACE("returning ppTLib=%p", *ppTLib);
Wine-dbg>WineDbg terminated on pid a
 
using in wine.config:

[AppDefaults\\KazaaLite.kpp\\DllOverrides]
"*" = "builtin, native, so"
;"shdoclc" = "native"
"shdocvw" = "native"
"shlwapi" = "native"
"commctrl" = "native"
;"comdlg32" = "native"
 
I looked though the CVS logs and mail archives and I found the
following:

http://www.winehq.org/hypermail/wine-devel/2003/06/0414.html

and the patch below which was applied to dlls/oleaut32/typelib.c

This caused the crash, reversing it fixes the error.

please fix / apply, or I will cry!!!

anyway, how do you use winedbg, I am not thick but it refuses to do
normal gdb stuff like the run command or a backtrace! Is there a URL I
missed?

Stefan

revision 1.95
date: 2003/05/13 22:15:26;  author: julliard;  state: Exp;  lines: +0 -2
Dmitry Timoshkov <dmitry at codeweavers.com>
Remove redundant ITypeLib2_AddRef's. Makes
LoadTypeLib/ITypeLib2_Release work.
Index: typelib.c
===================================================================
RCS file: /home/wine/wine/dlls/oleaut32/typelib.c,v
retrieving revision 1.94
retrieving revision 1.95
diff -u -r1.94 -r1.95
--- typelib.c	13 May 2003 00:41:58 -0000	1.94
+++ typelib.c	13 May 2003 22:15:26 -0000	1.95
@@ -1844,7 +1844,6 @@
                       pcx->pTblDir->pTypeInfoTab.offset+count*sizeof(tiBase));
 /* this is where we are coming from */
     ptiRet->pTypeLib = pLibInfo;
-    ITypeLib2_AddRef((ITypeLib2 *)pLibInfo);
     ptiRet->index=count;
 /* fill in the typeattr fields */
     FIXME("Assign constructor/destructor memid\n");
@@ -3055,7 +3054,6 @@
       }
       *ppTypeInfoImpl = (ITypeInfoImpl*)ITypeInfo_Constructor();
       (*ppTypeInfoImpl)->pTypeLib = pTypeLibImpl;
-	  ITypeLib2_AddRef((ITypeLib2 *)pTypeLibImpl);
       (*ppTypeInfoImpl)->index = i;
       (*ppTypeInfoImpl)->Name = TLB_MultiByteToBSTR(
 					     pOtherTypeInfoBlks[i].name_offs +





More information about the wine-devel mailing list