Brendan Shanks bshanks@codeweavers.com writes:
void *err_addr;
int result = emulate_umip_instr( context, &instr[i+1], len - i - 1, &err_addr,
segprefix, prefix_count, long_op, long_addr );
if (result == 1)
return 2;
else if (result == 2)
{
stack->rec.ExceptionCode = EXCEPTION_ACCESS_VIOLATION;
stack->rec.NumberParameters = 2;
stack->rec.ExceptionInformation[0] = 1;
stack->rec.ExceptionInformation[1] = (ULONG_PTR)err_addr;
return 1;
}
else
return 0;
This would be simpler and clearer if you didn't swap the 1 and 2 return value meaning between the two functions...