* addr2line.c (append_obj): clear allocated memory.

* addr2line.c (rb_dump_backtrace_with_lines): free `base_addrs'.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2014-04-10 07:19:53 +00:00
parent ddffb9bb9b
commit b8eb899785
2 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,9 @@
Thu Apr 10 15:01:06 2014 NARUSE, Yui <naruse@ruby-lang.org>
* addr2line.c (append_obj): clear allocated memory.
* addr2line.c (rb_dump_backtrace_with_lines): free `base_addrs'.
Thu Apr 10 14:40:18 2014 Koichi Sasada <ko1@atdot.net>
* gc.c (rb_gc_writebarrier_unprotect_promoted): disable to dump debug

View File

@ -423,7 +423,7 @@ fill_lines(int num_traces, void **traces, int check_debuglink,
static void
append_obj(obj_info_t **objp) {
obj_info_t *newobj = malloc(sizeof(obj_info_t));
obj_info_t *newobj = calloc(1, sizeof(obj_info_t));
if (*objp) (*objp)->next = newobj;
*objp = newobj;
}
@ -668,7 +668,7 @@ rb_dump_backtrace_with_lines(int num_traces, void **traces)
o = obj;
obj->path = main_path;
fill_lines(num_traces, traces, 1, &obj, lines, -1);
for (i=0; o=o->next; i++) {
for (i=0; o=o->next; i++) { /* 1 or 2 times */
base_addrs[i] = (void *)o->base_addr;
}
}
@ -741,6 +741,7 @@ next_line:
free(o);
}
free(lines);
free(base_addrs);
}
/* From FreeBSD's lib/libstand/printf.c */