diff options
Diffstat (limited to 'src/format')
-rw-r--r-- | src/format/symbol.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/format/symbol.h b/src/format/symbol.h index 2b8abf8..7389195 100644 --- a/src/format/symbol.h +++ b/src/format/symbol.h @@ -147,7 +147,23 @@ GDbComment *g_binary_symbol_get_comment(const GBinSymbol *); bool __result; \ const vmpa2t *__addr; \ __addr = get_mrange_addr(g_arch_instruction_get_range(_ins)); \ - _cmt = g_db_comment_new_inlined(__addr, BLF_HAS_CODE, _txt, false); \ + _cmt = g_db_comment_new_inlined(__addr, BLF_HAS_CODE, false); \ + g_db_comment_add_static_text(_cmt, strdup(_txt)); /* ! */ \ + g_db_item_set_volatile(G_DB_ITEM(_cmt), true); \ + _sym = g_binary_symbol_new(STP_DATA); \ + g_binary_symbol_attach_instruction(_sym, _ins); \ + g_binary_symbol_set_comment(_sym, _cmt); \ + __result = g_binary_format_add_symbol(G_BIN_FORMAT(_fmt), _sym); \ + __result; \ + }) + +#define ADD_RAW_AS_SYM_CST(_fmt, _sym, _ins, _cmt, _txt) \ + ({ \ + bool __result; \ + const vmpa2t *__addr; \ + __addr = get_mrange_addr(g_arch_instruction_get_range(_ins)); \ + _cmt = g_db_comment_new_inlined(__addr, BLF_HAS_CODE, false); \ + g_db_comment_add_static_text(_cmt, _txt); \ g_db_item_set_volatile(G_DB_ITEM(_cmt), true); \ _sym = g_binary_symbol_new(STP_DATA); \ g_binary_symbol_attach_instruction(_sym, _ins); \ |