aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/py-infthread.c
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@polymtl.ca>2017-10-27 22:23:33 -0400
committerSimon Marchi <simon.marchi@ericsson.com>2017-10-27 22:23:48 -0400
commit5a9dcda14c240eccee5c1de53cf4ae936230ed0c (patch)
tree15a969c3f9ea45ec6466d81247e9580370ecb8be /gdb/python/py-infthread.c
parent45461e0dcaf4193b5b4478031f515ffb7911ad85 (diff)
downloadbinutils-5a9dcda14c240eccee5c1de53cf4ae936230ed0c.zip
binutils-5a9dcda14c240eccee5c1de53cf4ae936230ed0c.tar.gz
binutils-5a9dcda14c240eccee5c1de53cf4ae936230ed0c.tar.bz2
C++ify xml-syscall.c
This patch C++ifies the structures in xml-syscall.c, by using std::vector instead of VEC, and std::string instead of char*. Using a unique_ptr in syscall_parse_xml allows to remove a cleanup. Something that seems strange with the existing code, if you look at syscalls_info_free_syscalls_desc and syscalls_info_free_syscall_group_desc, they free the structure elements (the strings and vectors), but they don't free the syscall_desc and syscall_group_desc structure themselves. I don't see anything freeing those currently. Any idea why? According to the comment above syscalls_info_free_syscall_group_desc, it kinda looks like it's on purpose. With this patch, those structures are deleted when the vector that contains them gets deleted. The only time I'm aware a syscalls_info structure gets deleted is in the case the data directory changes during runtime, in init_syscalls_info. If tried that use case (including under valgrind): (gdb) catch syscall (gdb) set data-directory another-data-directory (gdb) catch syscall I confirmed that the syscalls_info structure got deleted and recreated, and everything seemed fine. Regtested on the buildbot. gdb/ChangeLog: * xml-syscall.c (struct syscall_desc): Add constructor. <name>: Change type to std::string. (syscall_desc_up): New typedef. (syscall_desc_p): Remove typeder. (DEF_VEC_P(syscall_desc_p)): Remove. (struct syscall_group_desc): Add constructor. <name>: Change type to std::string. <syscalls>: Change type to std::vector. (syscall_group_desc_up): New typedef. (syscall_group_desc_p): Remove typedef. (DEF_VEC_P(syscall_group_desc_p)): Remove. (struct syscalls_info) <syscalls>: Change type to std::vector of unique_ptr. <groups>: Likewise. <my_gdb_datadir>: Change type to std::string. (syscalls_info_up): New typedef. (allocate_syscalls_info): Remove. (syscalls_info_free_syscalls_desc): Remove. (syscalls_info_free_syscall_group_desc): Remove. (free_syscalls_info): Remove. (make_cleanup_free_syscalls_info): Remove. (syscall_group_create_syscall_group_desc): Adjust. (syscall_group_add_syscall): Adjust. (syscall_create_syscall_desc): Adjust. (syscall_parse_xml): Adjust, use unique_ptr instead of cleanup. (init_syscalls_info): Adjust. (syscall_group_get_group_by_name): Adjust. (xml_get_syscall_number): Adjust. (xml_get_syscall_name): Adjust. (xml_list_of_syscalls): Adjust. (xml_list_syscalls_by_group): Adjust. (xml_list_of_groups): Adjust.
Diffstat (limited to 'gdb/python/py-infthread.c')
0 files changed, 0 insertions, 0 deletions