- Timestamp:
- Apr 15, 2011, 9:37:36 PM (14 years ago)
- Location:
- trunk/src/kernel32
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/initkernel32.cpp
r21583 r21626 73 73 } 74 74 75 // borrowed from ntddk.h 76 extern "C" 77 void WIN32API RtlUnwind( 78 LPVOID, 79 LPVOID, 80 LPVOID,DWORD); 81 75 82 extern PFN pfnImSetMsgQueueProperty; 76 83 … … 275 282 dprintf(("kernel32 exit %d\n", ulReason)); 276 283 284 TEB *teb = GetThreadTEB(); 285 286 if (teb) 287 { 288 // make sure the Win32 exception stack (if there is still any) is unwound 289 // before we destroy internal structures including the Win32 TEB 290 RtlUnwind(NULL, 0, 0, 0); 291 } 292 277 293 if( IsDBCSEnv() && imHandle ) 278 294 DosFreeModule( imHandle ); … … 288 304 OSLibLVMExit(); 289 305 290 TEB *teb = GetThreadTEB();291 306 if(teb) DestroyTEB(teb); 292 307 DestroySharedHeap(); -
trunk/src/kernel32/thread.cpp
r21529 r21626 52 52 #define MQP_INSTANCE_PERMQ 0x00000001 // from os2im.h 53 53 54 // borrowed from ntddk.h 55 extern "C" 56 void WINAPI RtlUnwind( 57 PEXCEPTION_FRAME, 58 LPVOID, 59 PEXCEPTION_RECORD,DWORD); 60 54 61 //****************************************************************************** 55 62 //****************************************************************************** … … 547 554 548 555 dprintf(("ExitThread %x (%x)", GetCurrentThread(), exitcode)); 556 557 // make sure the Win32 exception stack (if there is still any) is unwound 558 // before we destroy internal structures including the Win32 TIB 559 RtlUnwind(NULL, 0, 0, 0); 549 560 550 561 teb = GetThreadTEB(); … … 729 740 CONTROL87(0x27F, 0xFFF); 730 741 rc = AsmCallThreadHandler(fAlignStack, threadCallback, userdata); 742 743 // make sure the Win32 exception stack (if there is still any) is unwound 744 // before we destroy internal structures including the Win32 TIB 745 RtlUnwind(NULL, 0, 0, 0); 731 746 732 747 if(fExitProcess) { -
trunk/src/kernel32/wprocess.cpp
r21619 r21626 550 550 dprintf(("KERNEL32: ExitProcess %d (time %x)", exitcode, GetCurrentTime())); 551 551 dprintf(("KERNEL32: ExitProcess FS = %x\n", GetFS())); 552 553 // make sure the Win32 exception stack (if there is still any) is unwound 554 // before we destroy internal structures including the Win32 TIB 555 RtlUnwind(NULL, 0, 0, 0); 552 556 553 557 fExitProcess = TRUE;
Note:
See TracChangeset
for help on using the changeset viewer.