# componentize cpp # # Using the components API to sort CPP symbols into class hierarchies def ___sortCPPSymbols(): bv.begin_undo_actions() cpp_comp = bv.get_component_by_path("C++ Classes") if not cpp_comp: cpp_comp = bv.create_component("C++ Classes") for func in bv.functions: if len(demangle_gnu3(bv.arch, func.name)[1]) < 2 or isinstance(demangle_gnu3(bv.arch, func.name)[1], str): continue namespace = demangle_gnu3(bv.arch, func.name)[1][0] comp = bv.get_component_by_path("C++ Classes/" + namespace) if comp is None: comp = bv.create_component(namespace, cpp_comp) comp.add_function(func) bv.commit_undo_actions() ___sortCPPSymbols()