Rizin
unix-like reverse engineering framework and cli tools
|
Go to the source code of this file.
Classes | |
struct | STypeCodeStr |
struct | SStateInfo |
struct | SStrInfo |
struct | SDataType |
Macros | |
#define | MICROSOFT_NAME_LEN (256) |
#define | MICROSOFR_CLASS_NAMESPACE_LEN (256) |
#define | IMPOSSIBLE_LEN (MICROSOFT_NAME_LEN + MICROSOFR_CLASS_NAMESPACE_LEN) |
#define | DECL_STATE_ACTION(action) static void tc_state_##action(SStateInfo *state, STypeCodeStr *type_code_str); |
#define | NAME(action) tc_state_##action |
#define | copy_string(type_code_str, str_for_copy) copy_string_n(type_code_str, str_for_copy, str_for_copy ? strlen(str_for_copy) : 0) |
#define | SET_OPERATOR_CODE(str) |
#define | SINGLEQUOTED_A 'A' |
#define | SINGLEQUOTED_B 'B' |
#define | SINGLEQUOTED_C 'C' |
#define | SINGLEQUOTED_D 'D' |
#define | SINGLEQUOTED_E 'E' |
#define | SINGLEQUOTED_F 'F' |
#define | SINGLEQUOTED_G 'G' |
#define | SINGLEQUOTED_H 'H' |
#define | SINGLEQUOTED_I 'I' |
#define | SINGLEQUOTED_J 'J' |
#define | SINGLEQUOTED_K 'K' |
#define | SINGLEQUOTED_L 'L' |
#define | SINGLEQUOTED_M 'M' |
#define | SINGLEQUOTED_N 'N' |
#define | SINGLEQUOTED_O 'O' |
#define | SINGLEQUOTED_P 'P' |
#define | SINGLEQUOTED_Q 'Q' |
#define | SINGLEQUOTED_R 'R' |
#define | SINGLEQUOTED_S 'S' |
#define | SINGLEQUOTED_T 'T' |
#define | SINGLEQUOTED_U 'U' |
#define | SINGLEQUOTED_V 'V' |
#define | SINGLEQUOTED_W 'W' |
#define | SINGLEQUOTED_X 'X' |
#define | SINGLEQUOTED_Y 'Y' |
#define | SINGLEQUOTED_Z 'Z' |
#define | SINGLEQUOTED__ '_' |
#define | SINGLEQUOTED_ $ '$' |
#define | CHAR_WITH_QUOTES(letter) (SINGLEQUOTED_##letter) |
#define | DEF_STATE_ACTION(action) static void tc_state_##action(SStateInfo *state, STypeCodeStr *type_code_str) |
#define | GO_TO_NEXT_STATE(state, new_state) |
#define | ONE_LETTER_ACTION(action, type) |
#define | PROCESS_CASE(letter, type_str) |
#define | GET_USER_DEF_TYPE_NAME(data_struct_str) |
#define | PROCESS_CASE(case_string, type_str) |
#define | PROCESS_CASE(case_string, type_str) |
#define | PARSE_POINTER(pointer_str) parse_pointer(state, type_code_str, pointer_str) |
#define | ONE_LETTER_STATE(letter) |
#define | SET_PTR_MODIFIER(letter, modifier_left, modifier_right) |
#define | SET_THUNK_MODIFIER(letter, modifier_str) |
#define | SET_ACCESS_MODIFIER(letter, flag_set, modifier_str) |
Typedefs | |
typedef enum EObjectType | EObjectType |
typedef enum ETCStateMachineErr | ETCStateMachineErr |
typedef enum ETCState | ETCState |
typedef struct STypeCodeStr | STypeCodeStr |
typedef void(* | state_func) (struct SStateInfo *, STypeCodeStr *type_code_str) |
typedef struct SStateInfo | SStateInfo |
typedef struct SStrInfo | SStrInfo |
typedef struct SDataType | SDataType |
Enumerations | |
enum | EObjectType { eObjectTypeStaticClassMember = 2 , eObjectTypeGlobal = 3 , eObjectTypeMax = 99 } |
enum | ETCStateMachineErr { eTCStateMachineErrOK , eTCStateMachineErrUncorrectTypeCode , eTCStateMachineErrUnsupportedTypeCode , eTCStateMachineErrAlloc , eTCStateMachineErrMax } |
enum | ETCState { eTCStateStart = 0 , eTCStateEnd , eTCStateA , eTCStateB , eTCStateC , eTCStateD , eTCStateE , eTCStateF , eTCStateG , eTCStateH , eTCStateI , eTCStateJ , eTCStateK , eTCStateM , eTCStateN , eTCStateO , eTCStateP , eTCStateQ , eTCStateR , eTCStateS , eTCStateT , eTCStateU , eTCStateV , eTCStateW , eTCStateX , eTCStateZ , eTCState_ , eTCState , eTCStateMax } |
Functions | |
static void | sdatatype_fini (SDataType *data_type) |
static void | sstrinfo_free (SStrInfo *sstrinfo) |
static void | init_state_struct (SStateInfo *state, const char *buff_for_parsing) |
static EDemanglerErr | get_type_code_string (const char *sym, size_t *amount_of_read_chars, char **str_type_code) |
static bool | init_type_code_str_struct (STypeCodeStr *type_code_str) |
static void | free_type_code_str_struct (STypeCodeStr *type_code_str) |
static char * | type_code_str_get (STypeCodeStr *type_code_str) |
static size_t | get_template (const char *buf, SStrInfo *str_info, bool memorize) |
static char * | get_num (SStateInfo *state) |
static EDemanglerErr | parse_data_type (const char *sym, SDataType *demangled_type, size_t *len) |
static size_t | get_namespace_and_name (const char *buf, STypeCodeStr *type_code_str, size_t *amount_of_names, bool memorize) |
get_namespace_and_name More... | |
static EDemanglerErr | get_storage_class (const char encoded, const char **storage_class) |
static size_t | get_ptr_modifier (const char *encoded, SDataType *ptr_modifier) |
static EDemanglerErr | parse_function (const char *sym, STypeCodeStr *type_code_str, char **demangled_function, size_t *chars_read) |
static EDemanglerErr | parse_microsoft_mangled_name (const char *sym, char **demangled_name, size_t *chars_read) |
static EDemanglerErr | parse_microsoft_rtti_mangled_name (const char *sym, char **demangled_name, size_t *chars_read) |
static void | run_state (SStateInfo *state_info, STypeCodeStr *type_code_str) |
static bool | copy_string_n (STypeCodeStr *type_code_str, const char *str_for_copy, size_t copy_len) |
static int | get_template_params (const char *sym, size_t *amount_of_read_chars, char **str_type_code) |
static ut16 | read_be16 (const void *src) |
static ssize_t | utf16be_to_utf8_impl (const char *utf16be, size_t utf16be_len, char *utf8, size_t utf8_len) |
static EDemanglerErr | utf16be_to_utf8 (const char *utf16be, size_t utf16be_len, char **utf8, size_t *utf8_len) |
static size_t | get_operator_code (const char *buf, DemList *names_l, bool memorize) |
DEF_STATE_ACTION (_) | |
DEF_STATE_ACTION (T) | |
DEF_STATE_ACTION (U) | |
DEF_STATE_ACTION (W) | |
DEF_STATE_ACTION (V) | |
static void | parse_type_modifier (SStateInfo *state, STypeCodeStr *type_code_str, const char *modifier_str) |
DEF_STATE_ACTION (S) | |
static const char * | get_calling_convention (char calling_convention) |
static EDemanglerErr | parse_function_args (const char *sym, char **demangled_args, size_t *read_chars) |
static void | parse_function_pointer (SStateInfo *state, STypeCodeStr *type_code_str, const char *pointer_str) |
static void | parse_pointer (SStateInfo *state, STypeCodeStr *type_code_str, const char *pointer_str) |
DEF_STATE_ACTION (P) | |
DEF_STATE_ACTION (R) | |
DEF_STATE_ACTION (Q) | |
DEF_STATE_ACTION (A) | |
DEF_STATE_ACTION (B) | |
DEF_STATE_ACTION ($) | |
static void | tc_state_start (SStateInfo *state, STypeCodeStr *type_code_str) |
static void | tc_state_end (SStateInfo *state, STypeCodeStr *type_code_str) |
static EDemanglerErr | parse_function_type (const char *sym, SDataType *data_type, size_t *len, bool *is_static, bool *is_implicit_this_pointer) |
EDemanglerErr | microsoft_demangle (SDemangler *demangler, char **demangled_name) |
Do demangle for microsoft mangling scheme. Demangled name need to be free by user. More... | |
Variables | |
static DemList * | abbr_types = NULL |
static DemList * | abbr_names = NULL |
static state_func const | state_table [eTCStateMax] |
#define CHAR_WITH_QUOTES | ( | letter | ) | (SINGLEQUOTED_##letter) |
Definition at line 1174 of file microsoft_demangle.c.
#define copy_string | ( | type_code_str, | |
str_for_copy | |||
) | copy_string_n(type_code_str, str_for_copy, str_for_copy ? strlen(str_for_copy) : 0) |
Definition at line 197 of file microsoft_demangle.c.
#define DECL_STATE_ACTION | ( | action | ) | static void tc_state_##action(SStateInfo *state, STypeCodeStr *type_code_str); |
Definition at line 107 of file microsoft_demangle.c.
#define DEF_STATE_ACTION | ( | action | ) | static void tc_state_##action(SStateInfo *state, STypeCodeStr *type_code_str) |
Definition at line 1176 of file microsoft_demangle.c.
#define GET_USER_DEF_TYPE_NAME | ( | data_struct_str | ) |
Definition at line 1245 of file microsoft_demangle.c.
#define GO_TO_NEXT_STATE | ( | state, | |
new_state | |||
) |
Definition at line 1177 of file microsoft_demangle.c.
#define IMPOSSIBLE_LEN (MICROSOFT_NAME_LEN + MICROSOFR_CLASS_NAMESPACE_LEN) |
Definition at line 9 of file microsoft_demangle.c.
#define MICROSOFR_CLASS_NAMESPACE_LEN (256) |
Definition at line 8 of file microsoft_demangle.c.
#define MICROSOFT_NAME_LEN (256) |
Definition at line 7 of file microsoft_demangle.c.
#define NAME | ( | action | ) | tc_state_##action |
Definition at line 138 of file microsoft_demangle.c.
#define ONE_LETTER_ACTION | ( | action, | |
type | |||
) |
Definition at line 1183 of file microsoft_demangle.c.
#define ONE_LETTER_STATE | ( | letter | ) |
#define PARSE_POINTER | ( | pointer_str | ) | parse_pointer(state, type_code_str, pointer_str) |
Definition at line 1807 of file microsoft_demangle.c.
#define PROCESS_CASE | ( | case_string, | |
type_str | |||
) |
#define PROCESS_CASE | ( | case_string, | |
type_str | |||
) |
#define PROCESS_CASE | ( | letter, | |
type_str | |||
) |
#define SET_ACCESS_MODIFIER | ( | letter, | |
flag_set, | |||
modifier_str | |||
) |
#define SET_OPERATOR_CODE | ( | str | ) |
#define SET_PTR_MODIFIER | ( | letter, | |
modifier_left, | |||
modifier_right | |||
) |
#define SET_THUNK_MODIFIER | ( | letter, | |
modifier_str | |||
) |
#define SINGLEQUOTED_ $ '$' |
Definition at line 1173 of file microsoft_demangle.c.
#define SINGLEQUOTED__ '_' |
Definition at line 1172 of file microsoft_demangle.c.
#define SINGLEQUOTED_A 'A' |
Definition at line 1146 of file microsoft_demangle.c.
#define SINGLEQUOTED_B 'B' |
Definition at line 1147 of file microsoft_demangle.c.
#define SINGLEQUOTED_C 'C' |
Definition at line 1148 of file microsoft_demangle.c.
#define SINGLEQUOTED_D 'D' |
Definition at line 1149 of file microsoft_demangle.c.
#define SINGLEQUOTED_E 'E' |
Definition at line 1150 of file microsoft_demangle.c.
#define SINGLEQUOTED_F 'F' |
Definition at line 1151 of file microsoft_demangle.c.
#define SINGLEQUOTED_G 'G' |
Definition at line 1152 of file microsoft_demangle.c.
#define SINGLEQUOTED_H 'H' |
Definition at line 1153 of file microsoft_demangle.c.
#define SINGLEQUOTED_I 'I' |
Definition at line 1154 of file microsoft_demangle.c.
#define SINGLEQUOTED_J 'J' |
Definition at line 1155 of file microsoft_demangle.c.
#define SINGLEQUOTED_K 'K' |
Definition at line 1156 of file microsoft_demangle.c.
#define SINGLEQUOTED_L 'L' |
Definition at line 1157 of file microsoft_demangle.c.
#define SINGLEQUOTED_M 'M' |
Definition at line 1158 of file microsoft_demangle.c.
#define SINGLEQUOTED_N 'N' |
Definition at line 1159 of file microsoft_demangle.c.
#define SINGLEQUOTED_O 'O' |
Definition at line 1160 of file microsoft_demangle.c.
#define SINGLEQUOTED_P 'P' |
Definition at line 1161 of file microsoft_demangle.c.
#define SINGLEQUOTED_Q 'Q' |
Definition at line 1162 of file microsoft_demangle.c.
#define SINGLEQUOTED_R 'R' |
Definition at line 1163 of file microsoft_demangle.c.
#define SINGLEQUOTED_S 'S' |
Definition at line 1164 of file microsoft_demangle.c.
#define SINGLEQUOTED_T 'T' |
Definition at line 1165 of file microsoft_demangle.c.
#define SINGLEQUOTED_U 'U' |
Definition at line 1166 of file microsoft_demangle.c.
#define SINGLEQUOTED_V 'V' |
Definition at line 1167 of file microsoft_demangle.c.
#define SINGLEQUOTED_W 'W' |
Definition at line 1168 of file microsoft_demangle.c.
#define SINGLEQUOTED_X 'X' |
Definition at line 1169 of file microsoft_demangle.c.
#define SINGLEQUOTED_Y 'Y' |
Definition at line 1170 of file microsoft_demangle.c.
#define SINGLEQUOTED_Z 'Z' |
Definition at line 1171 of file microsoft_demangle.c.
typedef enum EObjectType EObjectType |
typedef enum ETCStateMachineErr ETCStateMachineErr |
typedef struct SStateInfo SStateInfo |
typedef void(* state_func) (struct SStateInfo *, STypeCodeStr *type_code_str) |
Definition at line 72 of file microsoft_demangle.c.
typedef struct STypeCodeStr STypeCodeStr |
enum EObjectType |
Enumerator | |
---|---|
eObjectTypeStaticClassMember | |
eObjectTypeGlobal | |
eObjectTypeMax |
Definition at line 15 of file microsoft_demangle.c.
enum ETCState |
Definition at line 32 of file microsoft_demangle.c.
enum ETCStateMachineErr |
Enumerator | |
---|---|
eTCStateMachineErrOK | |
eTCStateMachineErrUncorrectTypeCode | |
eTCStateMachineErrUnsupportedTypeCode | |
eTCStateMachineErrAlloc | |
eTCStateMachineErrMax |
Definition at line 24 of file microsoft_demangle.c.
|
static |
Definition at line 199 of file microsoft_demangle.c.
References STypeCodeStr::curr_pos, dst, malloc(), memcpy(), memset(), realloc(), STypeCodeStr::type_str, STypeCodeStr::type_str_buf, and STypeCodeStr::type_str_len.
Referenced by get_namespace_and_name(), get_template(), parse_function(), and parse_type_modifier().
DEF_STATE_ACTION | ( | $ | ) |
Definition at line 1829 of file microsoft_demangle.c.
References copy_string, eTCStateEnd, eTCStateMachineErrUncorrectTypeCode, eTCStateP, and parse_type_modifier().
DEF_STATE_ACTION | ( | _ | ) |
Definition at line 1206 of file microsoft_demangle.c.
References D, E, eTCStateEnd, eTCStateMachineErrUncorrectTypeCode, F, G, H, I, J, L, M, N, PROCESS_CASE, Q, S, T, W, and Z.
DEF_STATE_ACTION | ( | A | ) |
DEF_STATE_ACTION | ( | B | ) |
Definition at line 1825 of file microsoft_demangle.c.
References PARSE_POINTER.
DEF_STATE_ACTION | ( | P | ) |
Definition at line 1809 of file microsoft_demangle.c.
References PARSE_POINTER.
DEF_STATE_ACTION | ( | Q | ) |
Definition at line 1817 of file microsoft_demangle.c.
References PARSE_POINTER.
DEF_STATE_ACTION | ( | R | ) |
Definition at line 1813 of file microsoft_demangle.c.
References PARSE_POINTER.
DEF_STATE_ACTION | ( | S | ) |
Definition at line 1573 of file microsoft_demangle.c.
References parse_type_modifier().
DEF_STATE_ACTION | ( | T | ) |
Definition at line 1262 of file microsoft_demangle.c.
References eTCStateEnd, GET_USER_DEF_TYPE_NAME, and PROCESS_CASE.
DEF_STATE_ACTION | ( | U | ) |
Definition at line 1290 of file microsoft_demangle.c.
References eTCStateEnd, GET_USER_DEF_TYPE_NAME, and PROCESS_CASE.
DEF_STATE_ACTION | ( | V | ) |
Definition at line 1330 of file microsoft_demangle.c.
References eTCStateEnd, and GET_USER_DEF_TYPE_NAME.
DEF_STATE_ACTION | ( | W | ) |
Definition at line 1314 of file microsoft_demangle.c.
References eTCStateEnd, eTCStateMachineErrUncorrectTypeCode, and GET_USER_DEF_TYPE_NAME.
|
static |
Definition at line 1941 of file microsoft_demangle.c.
References RZ_FREE, STypeCodeStr::type_str, STypeCodeStr::type_str_buf, and STypeCodeStr::type_str_len.
Referenced by get_namespace_and_name(), get_template_params(), get_type_code_string(), parse_data_type(), parse_function(), parse_function_args(), parse_microsoft_mangled_name(), parse_pointer(), and parse_type_modifier().
|
inlinestatic |
Definition at line 1577 of file microsoft_demangle.c.
References NULL.
Referenced by parse_function(), and parse_function_pointer().
|
static |
get_namespace_and_name
buf | Current buffer position with mangled name |
type_code_str | String with got name and namespaces |
amount_of_names | Amount of names that was in list |
Definition at line 928 of file microsoft_demangle.c.
References abbr_names, copy_string, copy_string_n(), dem_list_append(), dem_list_foreach_prev, dem_list_free(), dem_list_get_n(), dem_list_length(), dem_list_newf(), dem_str_newf(), free(), free_type_code_str_struct(), get_num(), get_operator_code(), get_template(), i, init_state_struct(), init_type_code_str_struct(), isdigit, len, SStrInfo::len, malloc(), memcpy(), memset(), MICROSOFT_NAME_LEN, NULL, num, parse_microsoft_mangled_name(), RZ_FREE, RZ_NEW0, RZ_STR_ISEMPTY, sstrinfo_free(), cmd_descs_generate::str, SStrInfo::str_ptr, strdup(), and autogen_x86imm::tmp.
Referenced by get_template_params(), parse_data_type(), parse_microsoft_mangled_name(), and parse_pointer().
|
static |
Definition at line 1340 of file microsoft_demangle.c.
References dem_str_newf(), free(), isxdigit, malloc(), NULL, strdup(), and autogen_x86imm::tmp.
Referenced by get_namespace_and_name(), get_operator_code(), get_template_params(), and parse_type_modifier().
Definition at line 491 of file microsoft_demangle.c.
References a, SStateInfo::amount_of_read_chars, b, c, d, dem_list_append(), dem_list_free(), dem_str_append(), dem_str_newf(), dem_string_append(), dem_string_append_n(), dem_string_appendf(), dem_string_drain(), dem_string_free(), dem_string_new(), eDemanglerErrOK, test_evm::end, fail, free(), get_name(), get_num(), get_template(), i, init_state_struct(), isdigit, len, DemString::len, malloc(), memcpy(), name, NULL, parse_microsoft_rtti_mangled_name(), RZ_FREE, s, SET_OPERATOR_CODE, cmd_descs_generate::str, autogen_x86imm::tmp, and utf16be_to_utf8().
Referenced by get_namespace_and_name(), and get_template().
Definition at line 2006 of file microsoft_demangle.c.
References dem_str_append(), SDataType::left, SDataType::right, SET_PTR_MODIFIER, strdup(), and autogen_x86imm::tmp.
Referenced by parse_data_type(), parse_function(), parse_pointer(), and parse_type_modifier().
|
inlinestatic |
Definition at line 2050 of file microsoft_demangle.c.
References eDemanglerErrOK, eDemanglerErrUncorrectMangledSymbol, and NULL.
Referenced by parse_data_type(), parse_function(), parse_function_pointer(), parse_microsoft_rtti_mangled_name(), parse_pointer(), and parse_type_modifier().
Definition at line 837 of file microsoft_demangle.c.
References abbr_names, copy_string, copy_string_n(), STypeCodeStr::curr_pos, dem_list_append(), dem_list_free(), dem_list_head, dem_list_newf(), dem_str_ndup(), eDemanglerErrOK, free(), get_operator_code(), get_template_params(), get_type_code_string(), i, init_type_code_str_struct(), len, SStrInfo::len, memset(), NULL, RZ_FREE, RZ_STR_ISEMPTY, sstrinfo_free(), SStrInfo::str_ptr, strdup(), autogen_x86imm::tmp, and type_code_str_get().
Referenced by get_namespace_and_name(), and get_operator_code().
|
static |
Definition at line 247 of file microsoft_demangle.c.
References a, b, c, dem_str_newf(), eDemanglerErrMemoryAllocation, eDemanglerErrOK, eDemanglerErrUncorrectMangledSymbol, eDemanglerErrUnsupportedMangling, err, free(), free_type_code_str_struct(), get_namespace_and_name(), get_num(), init_state_struct(), init_type_code_str_struct(), isdigit, SDataType::left, NULL, parse_data_type(), parse_function(), SDataType::right, sdatatype_fini(), cmd_descs_generate::str, strdup(), and autogen_x86imm::tmp.
Referenced by get_template().
|
static |
Definition at line 1968 of file microsoft_demangle.c.
References eDemanglerErrMemoryAllocation, eDemanglerErrOK, eDemanglerErrUncorrectMangledSymbol, eDemanglerErrUnsupportedMangling, err, eTCStateEnd, eTCStateMachineErrOK, eTCStateMachineErrUncorrectTypeCode, eTCStateMachineErrUnsupportedTypeCode, free_type_code_str_struct(), init_state_struct(), init_type_code_str_struct(), NULL, run_state(), and type_code_str_get().
Referenced by get_template(), parse_data_type(), parse_function(), parse_function_args(), parse_function_pointer(), parse_microsoft_rtti_mangled_name(), and parse_type_modifier().
|
static |
Definition at line 1926 of file microsoft_demangle.c.
References eTCStateMachineErrOK, and eTCStateStart.
Referenced by get_namespace_and_name(), get_operator_code(), get_template_params(), and get_type_code_string().
|
static |
Definition at line 1933 of file microsoft_demangle.c.
References STypeCodeStr::curr_pos, MICROSOFT_NAME_LEN, STypeCodeStr::type_str, STypeCodeStr::type_str_buf, and STypeCodeStr::type_str_len.
Referenced by get_namespace_and_name(), get_template(), get_template_params(), get_type_code_string(), parse_data_type(), parse_function(), parse_function_args(), parse_microsoft_mangled_name(), parse_pointer(), and parse_type_modifier().
EDemanglerErr microsoft_demangle | ( | SDemangler * | demangler, |
char ** | demangled_name | ||
) |
Do demangle for microsoft mangling scheme. Demangled name need to be free by user.
demangler | 'this' object of demangler |
demangled_name | Demangled name of symbol of demangler object |
Definition at line 2551 of file microsoft_demangle.c.
References abbr_names, abbr_types, dem_list_free(), dem_list_newf(), eDemanglerErrMemoryAllocation, eDemanglerErrOK, err, free(), NULL, parse_microsoft_mangled_name(), parse_microsoft_rtti_mangled_name(), and SDemangler::symbol.
Referenced by init_demangler().
|
static |
Definition at line 2076 of file microsoft_demangle.c.
References dem_str_newf(), eDemanglerErrInternal, eDemanglerErrMemoryAllocation, eDemanglerErrOK, eDemanglerErrUncorrectMangledSymbol, err, free(), free_type_code_str_struct(), get_namespace_and_name(), get_ptr_modifier(), get_storage_class(), get_type_code_string(), i, init_type_code_str_struct(), SDataType::left, len, NULL, SDataType::right, sdatatype_fini(), cmd_descs_generate::str, strdup(), autogen_x86imm::tmp, and STypeCodeStr::type_str.
Referenced by get_template_params(), and parse_microsoft_mangled_name().
|
static |
Definition at line 2275 of file microsoft_demangle.c.
References copy_string, copy_string_n(), STypeCodeStr::curr_pos, dem_str_replace(), eDemanglerErrMemoryAllocation, eDemanglerErrOK, eDemanglerErrUncorrectMangledSymbol, err, free(), free_type_code_str_struct(), get_calling_convention(), get_ptr_modifier(), get_storage_class(), get_type_code_string(), init_type_code_str_struct(), SDataType::left, len, NULL, parse_function_args(), parse_function_type(), SDataType::right, RZ_FREE, RZ_STR_ISEMPTY, sdatatype_fini(), strdup(), type_code_str_get(), and STypeCodeStr::type_str.
Referenced by get_template_params(), and parse_microsoft_mangled_name().
|
static |
Definition at line 1606 of file microsoft_demangle.c.
References abbr_types, copy_string, dem_list_append(), dem_list_get_n(), eDemanglerErrMemoryAllocation, eDemanglerErrOK, eDemanglerErrUncorrectMangledSymbol, err, free(), free_type_code_str_struct(), get_type_code_string(), init_type_code_str_struct(), len, strdup(), autogen_x86imm::tmp, and STypeCodeStr::type_str.
Referenced by parse_function(), and parse_function_pointer().
|
static |
Definition at line 1692 of file microsoft_demangle.c.
References copy_string, eDemanglerErrOK, err, eTCStateEnd, eTCStateMachineErrUncorrectTypeCode, eTCStateMachineErrUnsupportedTypeCode, free(), get_calling_convention(), get_storage_class(), get_type_code_string(), i, NULL, parse_function_args(), and RZ_FREE.
Referenced by parse_pointer().
|
static |
Definition at line 2204 of file microsoft_demangle.c.
References eDemanglerErrOK, eDemanglerErrUncorrectMangledSymbol, SDataType::left, len, SDataType::right, SET_ACCESS_MODIFIER, SET_THUNK_MODIFIER, and strdup().
Referenced by parse_function().
|
static |
public mangled name of global object: <public name> ::= ?<name>@[<namespace>@](0->inf)@3<type><storage class> mangled name of a static class member object: <public name> ::= ?<name>@[<classname>@](1->inf)@2<type><storage class>
Definition at line 2453 of file microsoft_demangle.c.
References dem_str_append(), dem_str_newf(), eDemanglerErrMemoryAllocation, eDemanglerErrOK, eDemanglerErrUncorrectMangledSymbol, err, free_type_code_str_struct(), get_namespace_and_name(), i, init_type_code_str_struct(), isalpha, isdigit, SDataType::left, len, NULL, parse_data_type(), parse_function(), SDataType::right, sdatatype_fini(), type_code_str_get(), and STypeCodeStr::type_str.
Referenced by get_namespace_and_name(), and microsoft_demangle().
|
static |
Definition at line 2519 of file microsoft_demangle.c.
References dem_str_newf(), eDemanglerErrOK, eDemanglerErrUncorrectMangledSymbol, err, free(), get_storage_class(), get_type_code_string(), len, NULL, RZ_STR_ISEMPTY, and type.
Referenced by get_operator_code(), and microsoft_demangle().
|
static |
Definition at line 1756 of file microsoft_demangle.c.
References copy_string, eDemanglerErrOK, eTCStateEnd, eTCStateMachineErrAlloc, eTCStateMachineErrUncorrectTypeCode, free_type_code_str_struct(), get_namespace_and_name(), get_ptr_modifier(), get_storage_class(), init_type_code_str_struct(), isdigit, SDataType::left, NULL, parse_function_pointer(), parse_type_modifier(), read(), SDataType::right, sdatatype_fini(), and STypeCodeStr::type_str.
|
inlinestatic |
Definition at line 1402 of file microsoft_demangle.c.
References copy_string, copy_string_n(), STypeCodeStr::curr_pos, eDemanglerErrOK, err, eTCStateEnd, eTCStateMachineErrAlloc, eTCStateMachineErrUncorrectTypeCode, eTCStateMachineErrUnsupportedTypeCode, free_type_code_str_struct(), get_num(), get_ptr_modifier(), get_storage_class(), get_type_code_string(), i, init_type_code_str_struct(), mod(), NULL, num, RZ_FREE, sdatatype_fini(), autogen_x86imm::tmp, and STypeCodeStr::type_str.
Referenced by DEF_STATE_ACTION(), and parse_pointer().
|
static |
Definition at line 193 of file microsoft_demangle.c.
References SStateInfo::state, and state_table.
Referenced by get_type_code_string().
|
inlinestatic |
Definition at line 91 of file microsoft_demangle.c.
References SDataType::left, SDataType::right, and RZ_FREE.
Referenced by get_template_params(), parse_data_type(), parse_function(), parse_microsoft_mangled_name(), parse_pointer(), and parse_type_modifier().
|
static |
Definition at line 99 of file microsoft_demangle.c.
References free(), and SStrInfo::str_ptr.
Referenced by get_namespace_and_name(), and get_template().
|
static |
Definition at line 1922 of file microsoft_demangle.c.
|
static |
|
static |
Definition at line 1948 of file microsoft_demangle.c.
References STypeCodeStr::curr_pos, malloc(), memcpy(), NULL, STypeCodeStr::type_str, and STypeCodeStr::type_str_buf.
Referenced by get_template(), get_type_code_string(), parse_function(), and parse_microsoft_mangled_name().
|
static |
Definition at line 476 of file microsoft_demangle.c.
References eDemanglerErrMemoryAllocation, eDemanglerErrOK, eDemanglerErrUncorrectMangledSymbol, free(), malloc(), and utf16be_to_utf8_impl().
Referenced by get_operator_code().
|
static |
Definition at line 422 of file microsoft_demangle.c.
References bits(), c, d, in, and read_be16().
Referenced by utf16be_to_utf8().
Definition at line 13 of file microsoft_demangle.c.
Referenced by get_namespace_and_name(), get_template(), and microsoft_demangle().
Definition at line 12 of file microsoft_demangle.c.
Referenced by microsoft_demangle(), and parse_function_args().
|
static |
Definition at line 139 of file microsoft_demangle.c.
Referenced by run_state().