Changeset 22004 for trunk/src/kernel32/seh
- Timestamp:
- Jul 7, 2012, 1:59:15 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/seh/sehutil.s
r21999 r22004 154 154 popl %ebp 155 155 156 /* analyze filter result */ 157 movl 20(%ebx), %eax /* pFrame->filterResult */ 158 cmpl $1, %eax /* EXCEPTION_EXECUTE_HANDLER? */ 159 je ___seh_handler_FreeMem 160 cmpl $-1, %eax /* EXCEPTION_CONTINUE_EXECUTION? */ 161 jne 1f 162 movl $0, %eax /* ExceptionContinueExecution */ 163 jmp 2f 164 1: 165 /* Assume EXCEPTION_CONTIUNE_SEARCH */ 166 movl $1, %eax /* ExceptionContinueSearch */ 167 2: 168 169 /* convert Win32 exception info back to OS/2 */ 170 pushl 16(%ebp) /* pContext */ 171 pushl 48(%ebx) /* pFrame->Pointers.ContextRecord */ 172 pushl %eax /* rc */ 173 call OSLibConvertExceptionResult 174 addl $12, %esp 175 pushl %eax /* save result */ 176 177 ___seh_handler_FreeMem: 178 156 179 /* free heap block */ 157 180 movl 16(%ebx), %eax /* pFrame->pHandlerContext */ … … 161 184 addl $4, %esp 162 185 163 /* analyze filter result */186 /* analyze filter result again */ 164 187 movl 20(%ebx), %eax /* pFrame->filterResult */ 165 188 cmpl $1, %eax /* EXCEPTION_EXECUTE_HANDLER? */ 166 189 je ___seh_handler_Unwind 167 cmpl $-1, %eax /* EXCEPTION_CONTINUE_EXECUTION? */ 168 jne 1f 190 191 popl %eax /* restore OSLibConvertExceptionResult result */ 192 193 /* %eax already contains TRUE if the execution should continue 194 * and FALSE otherwise */ 195 cmp $0, %eax /* FALSE (= continue search)? */ 196 je 1f 169 197 movl $0, 52(%ebx) /* pFrame->state */ 170 //movl $-1, %eax /* XCPT_CONTINUE_EXECUTION (-1) */ 171 movl $1, %eax 198 movl $1, %eax /* TRUE */ 172 199 jmp ___seh_handler_Return 173 200 1: 174 /* assume EXCEPTION_CONTINUE_SEARCH (0) */ 175 xorl %eax, %eax /* return XCPT_CONTINUE_SEARCH (0) */ 201 xorl %eax, %eax /* FALSE */ 176 202 jmp ___seh_handler_Return 177 203
Note:
See TracChangeset
for help on using the changeset viewer.