Hi, This patchset converts the nanomips disassembler to plain C. C++ features like class, std::string type, exception handling, and function overloading have been removed and replaced with the equivalent C code.
=============================== Changes since previous version: (1) disas/nanomips: Remove namespace img Removed comments that refer to the deleted function. (3) disas/nanomips: Delete NMD class fields Class fields were introduced as global variables in the previous version. Since it wasn't a thread-safe solution, in this version, one class field (m_requested_instruction_categories) has been replaced with the only value it can have, while the other class field has been added as a parameter where needed. (4) disas/nanomips: Remove helper methods from class Squashed patch #19 here. (5) disas/nanomips: Remove __cond methods from class Addressed the coding style issues. (6) disas/nanomips: Remove disasm methods from class Addressed the coding style issues. (12) disas/nanomips: Replace std::string type Changed the return types to char * when a function returns allocated memory. Switched to using some glib functions for memory allocation like g_malloc, g_strdup_vprintf, and g_strdup_printf instead of strdup. (13) disas/nanomips: Prevent memory leaking Used the g_autofree attribute for dynamically allocated strings, instead of calling free(). Now, this patch is much smaller than in the previous version. (14) disas/nanomips: Introduce Dis_info struct Same as in (3). Instead of using global variables, all the necessary information are packed into the struct and added as an argument wherever needed. Regards, Milica Milica Lazarevic (20): disas/nanomips: Remove namespace img disas/nanomips: Extract enums out of the NMD class disas/nanomips: Delete NMD class fields disas/nanomips: Remove helper methods from class disas/nanomips: Remove __cond methods from class disas/nanomips: Remove disasm methods from class disas/nanomips: Remove Pool tables from the class disas/nanomips: Remove NMD class disas/nanomips: Move typedefs etc to nanomips.cpp disas/nanomips: Delete nanomips.h disas/nanomips: Remove #inlcude <sstream> disas/nanomips: Replace std::string type disas/nanomips: Prevent memory leaking disas/nanomips: Remove function overloading disas/nanomips: Introduce Dis_info struct disas/nanomips: Replace exception handling disas/nanomips: Replace Cpp enums for C enums disas/nanomips: Remove argument passing by ref disas/nanomips: Add struct keyword disas/nanomips: Rename nanomips.cpp to nanomips.c disas/meson.build | 2 +- disas/{nanomips.cpp => nanomips.c} | 7155 ++++++++++++++++++------------------ disas/nanomips.h | 1072 ------ 3 files changed, 3557 insertions(+), 4672 deletions(-)