I use Fedora core 4 to develop this code.  The version of ScriptStringAnalyse you have does not actually do anything other than return various values.  The problem occurs after the second call to ScriptStringAnalyse but the only difference is that hdc is specified.  In theory it should drop through to the return E_NOTIMPL.

I think there are a couple of choices: you could fire up winedbg, set a break at ScriptStringAnalyse and step through the function; or  you could apply my last patch and see if the problem goes away (unsatisfying but expedient).

Jeff

Hans Leidekker wrote:
On Sunday 23 July 2006 13:12, you wrote:

  
Do you have the trace WINEDEBUG=+uniscribe wine usp10_test.exe?  It may
help withmailing down where the problem is.
    

Trace attached. This machine is a Fedora development installation
b.t.w, my other machine runs Kubuntu Dapper and it doesn't show the
problem.

 -Hans
  

../../../tools/runtest -q -P wine -M usp10.dll -T ../../.. -p usp10_test.exe.so usp10.c && touch usp10.ok fixme:font:WineEngCreateFontInstance Untranslated charset 123 trace:uniscribe:ScriptGetProperties 0x406ffd84,0x406ffd88 trace:uniscribe:ScriptGetProperties ppSp:0x406ffd84, *ppSp:0x40715780, **ppSp:0x40714888, 8 fixme:uniscribe:ScriptItemize L"\6873\756f\646c\7220\7465",5,1,(nil),(nil),0x406fe704,0x406ffd78: semi-stub fixme:uniscribe:ScriptItemize (null),5,255,(nil),(nil),0x406fe704,0x406ffd78: semi-stub fixme:uniscribe:ScriptItemize L"",0,255,(nil),(nil),0x406fe704,0x406ffd78: semi-stub fixme:uniscribe:ScriptItemize L"\6873\756f\646c\7220\7465",5,255,(nil),(nil),(nil),0x406ffd78: semi-stub fixme:uniscribe:ScriptItemize L"\6873\756f\646c\7220\7465",5,255,(nil),(nil),0x406fe704,0x406ffd78: semi-stub trace:uniscribe:ScriptItemize L"\6873\756f\646c\7220\7465",5,255,(nil),(nil),0x406fe704,0x406ffd78,1 trace:uniscribe:ScriptItemize Start Pos in string: 0, Stop Pos 5 fixme:uniscribe:ScriptShape ((nil), 0x406ffd7c, 0x406ffd6c, 5, 5, 0x406fe708): semi-stub trace:uniscribe:ScriptShape psa values: 0, 0, 0, 0, 0, 0, 0 trace:uniscribe:ScriptShape No Script_Cache (psc) and no hdc. Ask for one. Hdc=(nil), psc=(nil) fixme:uniscribe:ScriptShape (0x1c0, 0x406ffd7c, 0x406ffd6c, 5, 4, 0x406fe708): semi-stub trace:uniscribe:ScriptShape psa values: 0, 0, 0, 0, 0, 0, 0 fixme:uniscribe:ScriptShape (0x1c0, 0x406ffd7c, 0x406ffd6c, 5, 256, 0x406fe708): semi-stub trace:uniscribe:ScriptShape psa values: 0, 0, 0, 0, 0, 0, 0 trace:uniscribe:ScriptShape Before: 6873756f646c72207465 trace:uniscribe:ScriptShape After: 00000000000000000000 fixme:uniscribe:ScriptPlace (0x1c0, 0x406ffd7c, 0x406ff8fc, L"\0000\0000\0000\0000\0000", 5, 0x406ff2fc, 0x406fe708, 0x406feefc): semi-stub trace:uniscribe:ScriptPlace Total for run: abcA=0, abcB=0, abcC=0 fixme:uniscribe:ScriptPlace ((nil), 0x406ffd7c, 0x406ff8fc, L"\0000\0000\0000\0000\0000", 5, 0x406ff2fc, 0x406fe708, 0x406feefc): semi-stub trace:uniscribe:ScriptPlace Total for run: abcA=0, abcB=0, abcC=0 fixme:uniscribe:ScriptItemize L"\5374\7274\6e69\4167\616e",5,255,(nil),(nil),0x406fe704,0x406ffd78: semi-stub trace:uniscribe:ScriptItemize L"\5374\7274\6e69\4167\616e",5,255,(nil),(nil),0x406fe704,0x406ffd78,1 trace:uniscribe:ScriptItemize Start Pos in string: 0, Stop Pos 5 fixme:uniscribe:ScriptShape ((nil), 0x406ffd7c, 0x406ffd58, 5, 256, 0x406fe708): semi-stub trace:uniscribe:ScriptShape psa values: 0, 0, 0, 0, 0, 0, 1 trace:uniscribe:ScriptShape Before: 537472746e694167616e trace:uniscribe:ScriptShape After: 537472746e694167616e fixme:uniscribe:ScriptPlace (0x1c0, 0x406ffd7c, 0x406ff6fc, L"\5374\7274\6e69\4167\616e", 5, 0x406ff2fc, 0x406fe708, 0x406feefc): semi-stub trace:uniscribe:ScriptPlace Total for run: abcA=0, abcB=0, abcC=0 trace:uniscribe:ScriptFreeCache 0x406ffd7c fixme:uniscribe:ScriptGetCMap ((nil),(nil),(null),0,0x0,(nil)): semi-stub fixme:uniscribe:ScriptGetCMap ((nil),(nil),L"Testa",5,0x0,0x406fd01c): semi-stub fixme:uniscribe:ScriptGetCMap ((nil),0x406fd228,(null),0,0x0,(nil)): semi-stub trace:uniscribe:ScriptGetCMap No Script_Cache (psc) and no hdc. Ask for one. Hdc=(nil), psc=(nil) fixme:uniscribe:ScriptGetCMap (0x1c0,0x406fd228,(null),0,0x0,(nil)): semi-stub trace:uniscribe:ScriptGetCMap Before: trace:uniscribe:ScriptGetCMap After: fixme:uniscribe:ScriptGetCMap ((nil),0x406fd228,L"Testa",5,0x0,0x406fd01c): semi-stub trace:uniscribe:ScriptGetCMap No Script_Cache (psc) and no hdc. Ask for one. Hdc=(nil), psc=(nil) fixme:uniscribe:ScriptGetCMap (0x1c0,0x406fd228,L"Testa",5,0x0,0x406fd01c): semi-stub trace:uniscribe:ScriptGetCMap Before: 54 65 73 74 61 trace:uniscribe:ScriptGetCMap After: 00350046005400550042 usp10.c:273: Test failed: Translation not correct. WCHAR 0 - 0000 != 0035 trace:uniscribe:ScriptFreeCache 0x406fd228 trace:uniscribe:ScriptGetFontProperties (nil),(nil),(nil) trace:uniscribe:ScriptGetFontProperties (nil),(nil),0x406fd218 trace:uniscribe:ScriptGetFontProperties (nil),0x406fd228,(nil) trace:uniscribe:ScriptGetFontProperties (nil),0x406fd228,0x406fd218 trace:uniscribe:ScriptGetFontProperties No Script_Cache (psc) and no hdc. Ask for one. Hdc=(nil), psc=(nil) trace:uniscribe:ScriptGetFontProperties 0x214,(nil),(nil) trace:uniscribe:ScriptGetFontProperties 0x214,(nil),0x406fd218 trace:uniscribe:ScriptGetFontProperties 0x214,0x406fd228,(nil) trace:uniscribe:ScriptGetFontProperties 0x214,0x406fd228,0x406fd218 trace:uniscribe:ScriptFreeCache 0x406fd228 trace:uniscribe:ScriptGetFontProperties 0x214,0x406fd228,0x406fd218 trace:uniscribe:ScriptGetFontProperties (nil),0x406fd228,0x406fd218 trace:uniscribe:ScriptFreeCache 0x406fd228 fixme:uniscribe:ScriptItemize L"Testa",5,255,(nil),(nil),0x406fbf08,0x406fd228: semi-stub trace:uniscribe:ScriptItemize L"Testa",5,255,(nil),(nil),0x406fbf08,0x406fd228,1 trace:uniscribe:ScriptItemize Start Pos in string: 0, Stop Pos 5 fixme:uniscribe:ScriptShape (0x214, 0x406fd224, 0x406fd210, 5, 256, 0x406fbf0c): semi-stub trace:uniscribe:ScriptShape psa values: 0, 0, 0, 0, 0, 0, 0 trace:uniscribe:ScriptShape Before: 54 65 73 74 61 trace:uniscribe:ScriptShape After: 00350046005400550042 fixme:uniscribe:ScriptPlace (0x214, 0x406fd224, 0x406fcf00, L"5FTUB", 5, 0x406fcb00, 0x406fbf0c, 0x406fc700): semi-stub trace:uniscribe:ScriptPlace Total for run: abcA=0, abcB=0, abcC=0 trace:uniscribe:ScriptFreeCache 0x406fd224 trace:uniscribe:ScriptTextOut ((nil), (nil), 0, 0, 0000, (nil), (nil), (nil), 0, (nil), 0, (nil), (nil), (nil)): stub trace:uniscribe:ScriptTextOut ((nil), (nil), 0, 0, 0000, (nil), 0x406fbf0c, (nil), 0, 0x406fcf00, 5, 0x406fc700, (nil), 0x406fb708): stub trace:uniscribe:ScriptTextOut ((nil), 0x406fd224, 0, 0, 0000, (nil), (nil), (nil), 0, (nil), 0, (nil), (nil), (nil)): stub trace:uniscribe:ScriptTextOut ((nil), 0x406fd224, 0, 0, 0000, (nil), 0x406fbf0c, (nil), 0, 0x406fcf00, 5, 0x406fc700, (nil), 0x406fb708): stub trace:uniscribe:ScriptTextOut (0x214, 0x406fd224, 0, 0, 0000, (nil), 0x406fbf0c, (nil), 0, 0x406fcf00, 5, 0x406fc700, (nil), 0x406fb708): stub trace:uniscribe:ScriptTextOut (0x214, 0x406fd224, 0, 0, 0000, 0x406fd200, 0x406fbf0c, (nil), 0, 0x406fcf00, 5, 0x406fc700, (nil), 0x406fb708): stub trace:uniscribe:ScriptCPtoX (1,0,5,5,0x406fcd00,0x406fcb00,0x406fc700,0x406fbf0c,0x406fd21c) trace:uniscribe:ScriptCPtoX *piX=0 fixme:uniscribe:ScriptBreak (0x406fd210,5,0x406fbf0c,0x406fd100): stub trace:uniscribe:ScriptFreeCache 0x406fd224 trace:uniscribe:ScriptXtoCP (-1,10,10,0x406ffd58,0x406ff8fc,0x406ffcfc,0x406ffd6c,0x406ffd80,0x406ffd78) trace:uniscribe:ScriptXtoCP (1954,10,10,0x406ffd58,0x406ff8fc,0x406ffcfc,0x406ffd6c,0x406ffd80,0x406ffd78) trace:uniscribe:ScriptXtoCP (779,10,10,0x406ffd58,0x406ff8fc,0x406ffcfc,0x406ffd6c,0x406ffd80,0x406ffd78) trace:uniscribe:ScriptXtoCP *piCP=3 iPposX=781 trace:uniscribe:ScriptXtoCP (780,10,10,0x406ffd58,0x406ff8fc,0x406ffcfc,0x406ffd6c,0x406ffd80,0x406ffd78) trace:uniscribe:ScriptXtoCP *piCP=3 iPposX=781 trace:uniscribe:ScriptXtoCP (868,10,10,0x406ffd58,0x406ff8fc,0x406ffcfc,0x406ffd6c,0x406ffd80,0x406ffd78) trace:uniscribe:ScriptXtoCP *piCP=4 iPposX=977 trace:uniscribe:ScriptCPtoX (5,0,10,10,0x406ffd58,0x406ff8fc,0x406ffcfc,0x406ffd6c,0x406ffd7c) trace:uniscribe:ScriptCPtoX *piX=976 trace:uniscribe:ScriptCPtoX (5,1,10,10,0x406ffd58,0x406ff8fc,0x406ffcfc,0x406ffd6c,0x406ffd7c) trace:uniscribe:ScriptCPtoX *piX=1171 trace:uniscribe:ScriptCPtoX (6,0,10,10,0x406ffd58,0x406ff8fc,0x406ffcfc,0x406ffd6c,0x406ffd7c) trace:uniscribe:ScriptCPtoX *piX=1171 trace:uniscribe:ScriptCPtoX (11,0,10,10,0x406ffd58,0x406ff8fc,0x406ffcfc,0x406ffd6c,0x406ffd7c) trace:uniscribe:ScriptCPtoX *piX=1953 trace:uniscribe:ScriptCPtoX (11,1,10,10,0x406ffd58,0x406ff8fc,0x406ffcfc,0x406ffd6c,0x406ffd7c) trace:uniscribe:ScriptCPtoX *piX=1953 fixme:font:WineEngCreateFontInstance Untranslated charset 64 fixme:uniscribe:ScriptStringAnalyse ((nil),0x406fd214,5,26,-1,0x80,100,0x406fd224,0x406fd228,0x405e7a24,0x406fd204,0x406fd22b,0x406fd220): stub fixme:uniscribe:ScriptStringAnalyse (0x214,0x406fd214,5,26,-1,0x80,100,0x406fd224,0x406fd228,0x405e7a24,0x406fd204,0x406fd22b,0x406fd220): stub wine: Unhandled page fault on read access to 0x70697263 at address 0x70697263 (thread 0009), starting debugger... WineDbg starting on pid 0x8 fixme:dbghelp:SymLoadModule Should have successfully loaded debug information for image Z:\usr\local\src\wine-git\dlls\usp10\tests\usp10_test.exe fixme:dbghelp:SymLoadModule Should have successfully loaded debug information for image c:\windows\system32\usp10.dll fixme:dbghelp:SymLoadModule Should have successfully loaded debug information for image c:\windows\system32\winex11.drv fixme:dbghelp:SymLoadModule Should have successfully loaded debug information for image c:\windows\system32\imm32.dll fixme:dbghelp:SymLoadModule Should have successfully loaded debug information for image c:\windows\system32\imm32.dll fixme:dbghelp:SymLoadModule Should have successfully loaded debug information for image c:\windows\system32\winex11.drv fixme:dbghelp:SymLoadModule Should have successfully loaded debug information for image c:\windows\system32\usp10.dll fixme:dbghelp:SymLoadModule Should have successfully loaded debug information for image Z:\usr\local\src\wine-git\dlls\usp10\tests\usp10_test.exe Unhandled exception: page fault on read access to 0x70697263 in 32-bit code (0x70697263). Register dump: CS:0073 SS:007b DS:007b ES:007b FS:003b GS:0033 EIP:70697263 ESP:406fd240 EBP:5300000a EFLAGS:00010282( - 00 - RIS1) EAX:00000001 EBX:20474e49 ECX:5c5c5c5c EDX:405e85bc ESI:20746f6e EDI:78383025 Stack dump: 0x406fd240: 72745374 41676e69 796c616e 53206573 0x406fd250: 20627574 756f6873 7220646c 72757465 0x406fd260: 5f45206e 49544f4e 204c504d 20746f6e 0x406fd270: 78383025 5300000a 70697263 72745374 0x406fd280: 4f676e69 53207475 20627574 756f6873 0x406fd290: 7220646c 72757465 5f45206e 49544f4e fixme:ntdll:RtlNtStatusToDosErrorNoTeb no mapping for c0000119 Backtrace: 0x70697263: -- no code accessible -- Modules: Module Address Debug info Name (9 modules) PE 405e0000-405e9000 --none-- usp10_test PE 40710000-40716000 --none-- usp10 PE 40730000-407a6000 Deferred gdi32 PE 407b0000-407ea000 Deferred advapi32 PE 40800000-40920000 Deferred user32 PE 40b40000-40bb4000 --none-- winex11 PE 40bc0000-40bd0000 --none-- imm32 PE 7b820000-7b905000 Deferred kernel32 PE 7bc10000-7bc80000 Deferred ntdll Threads: process tid prio (all id:s are in hex) 0000000a 0000000b 0 00000008 (D) Z:\usr\local\src\wine-git\dlls\usp10\tests\usp10_test.exe 00000009 0 <==