dt_case
Describes
exit of recognized switch. Kept as a data record of type DT_DATA at the address of case destination.
typedef
struct dt_case { // Switch
exit descriptor DT_CASE
ulong swbase;
// Address of switch
descriptor
ulong type;
// Switch type,
set of CASE_xxx
int ncase;
//
Number of cases (1..64, 0: default)
ulong value[NSWCASE];
// List of cases for exit
} dt_case;
Members:
swbase
Base address of the switch to which this dt_case belongs. Switch is described by the structure dt_switch which is kept as a data record of type DT_SWITCH at address swbase
type
Type of switch exit, combination of the following constants:
CASE_HUGE - exit contains more than NSWCASE cases, some of them are not included into the value[]
CASE_DEFAULT - this is a default case of the switch, list of cases is empty
CASE_ASCII - most probably, switch cases correspond to ASCII characters
CASE_MSG - most probably, switch cases can be interpreted as Windows messages WM_xxx
CASE_EXCPTN - most probably, switch cases can be intrepreted as exception codes (like 0xC0000005, ACCESSS_VIOLATION)
CASE_SIGNED - if set, case values should be interpreted as signed numbers, otherwise as unsigned
ncase
Number of cases in exit (1..NSWCASE). ncase=0 means default exit. If number of cases exceeds NSWCASE, analyser limits ncase to NSWCASE and sets flag CASE_HUGE in type
ncase
List of switch cases that end on this exit
See
also: