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:
dt_switch