Changeset 2559 for trunk/src/kernel32/exceptions.cpp
- Timestamp:
- Jan 29, 2000, 3:22:56 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/exceptions.cpp
r2535 r2559 1 /* $Id: exceptions.cpp,v 1.3 2 2000-01-27 21:51:16 sandervl Exp $ */1 /* $Id: exceptions.cpp,v 1.33 2000-01-29 14:22:56 sandervl Exp $ */ 2 2 3 3 /* … … 1129 1129 } 1130 1130 1131 /*****************************************************************************1132 * Name : void ReplaceExceptionHandler1133 * Purpose :1134 * Parameters: ...1135 * Variables :1136 * Result :1137 * Remark :1138 * Status :1139 *1140 * Author : Sander van Leeuwen [Tue, 1999/07/01 09:00]1141 *****************************************************************************/1142 1143 //******************************************************************************1144 //SvL: Replace original startup code exception handler1145 extern BOOL fExeStarted;1146 //******************************************************************************1147 void ReplaceExceptionHandler()1148 {1149 static BOOL fRegistered = FALSE;1150 PWINEXCEPTION_FRAME orgframe;1151 APIRET rc;1152 ULONGULONG_W timerval;1153 1154 DisableFPUExceptions();1155 1156 if(fExeStarted == FALSE)1157 return;1158 1159 orgframe = (PWINEXCEPTION_FRAME)QueryExceptionChain();1160 if((int)orgframe == 0 ||1161 (int)orgframe == -1)1162 return;1163 1164 dprintf(("KERNEL32: ReplaceExceptionHandler\n"));1165 1166 StartupCodeHandler = orgframe->Handler;1167 orgframe->Handler = (PEXCEPTION_HANDLER)OS2ExceptionHandler;1168 orgframe->Prev = (_WINEXCEPTION_FRAME *)0;1169 SetExceptionChain((ULONG)-1);1170 1171 #if 01172 if(fRegistered == FALSE)1173 {1174 #endif1175 1176 dprintf(("KERNEL32: ReplaceExceptionHandler: New exception frame at %X\n",1177 orgframe));1178 rc = DosSetExceptionHandler((PEXCEPTIONREGISTRATIONRECORD)orgframe);1179 fRegistered = TRUE;1180 1181 #if 01182 }1183 else1184 {1185 while(orgframe && orgframe->Handler != (PEXCEPTION_HANDLER)OS2ExceptionHandler)1186 {1187 orgframe = orgframe->Prev;1188 }1189 1190 dprintf(("KERNEL32: ReplaceExceptionHandler: Restore old exception frame %X\n",1191 orgframe));1192 if(orgframe)1193 {1194 orgframe->Prev = (_WINEXCEPTION_FRAME *)0;1195 SetExceptionChain((ULONG)orgframe);1196 }1197 }1198 #endif1199 }1200
Note:
See TracChangeset
for help on using the changeset viewer.