[PATCH] ntdll: Call __finally blocks in __C_specific_handler (try2)
Piotr Caban
piotr.caban at gmail.com
Sat Aug 6 03:45:21 CDT 2016
On 08/06/16 01:39, Daniel Lehman wrote:
> + if (rec->ExceptionFlags & EH_TARGET_UNWIND &&
> + dispatch->TargetIp < dispatch->ImageBase + table->ScopeRecord[i].EndAddress)
> + {
> + break;
> + }
Here's a test that shows that you also need to check BeginAddress:
BOOL first = TRUE;
__try {
begin:
if(!first) {
printf("here\n");
return 0;
}
first = FALSE;
__try {
__try {
goto begin;
} __finally {
printf("finally 1\n");
}
} __finally {
printf("finally 2\n");
}
} __finally {
printf("finally 3\n");
}
More information about the wine-devel
mailing list