1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

use malloc() instead of calloc().

Here malloc() is enough because all elements of the page_list
will be overwrite.
This commit is contained in:
Koichi Sasada 2019-05-28 11:42:31 +09:00
parent f9401d5d44
commit f3bddc103d

10
gc.c
View file

@ -7570,14 +7570,18 @@ typedef int page_compare_func_t(const void *, const void *, void *);
static struct heap_page **
allocate_page_list(rb_objspace_t *objspace, page_compare_func_t *comparator)
{
size_t n = heap_eden->total_pages;
struct heap_page *page, **page_list = calloc(n, sizeof(struct heap_page *));
size_t total_pages = heap_eden->total_pages;
struct heap_page *page, **page_list = malloc(total_pages * sizeof(struct heap_page *));
int i = 0;
list_for_each(&heap_eden->pages, page, page_node) {
page_list[i++] = page;
GC_ASSERT(page != NULL);
}
ruby_qsort(page_list, n, sizeof(struct heap_page *), comparator, NULL);
GC_ASSERT(total_pages > 0);
GC_ASSERT((size_t)i == total_pages);
ruby_qsort(page_list, total_pages, sizeof(struct heap_page *), comparator, NULL);
return page_list;
}