Create a wrapper object first, then buffer allocation which can
fail.
This commit is contained in:
Nobuyoshi Nakada 2020-05-22 06:50:23 +09:00
Родитель 38a4f617de
Коммит 79d9528ddc
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 7CD2805BFA3770C6
2 изменённых файлов: 5 добавлений и 3 удалений

Просмотреть файл

@ -9721,12 +9721,13 @@ static VALUE
pinned_list_new(long size)
{
struct pinned_list * ptr;
VALUE obj_list =
TypedData_Make_Struct(0, struct pinned_list, &pinned_list_type, ptr);
ptr = xmalloc(sizeof(struct pinned_list));
ptr->size = size;
ptr->buffer = xcalloc(size, sizeof(VALUE));
ptr->size = size;
return TypedData_Wrap_Struct(0, &pinned_list_type, ptr);
return obj_list;
}
static ibf_offset_t

Просмотреть файл

@ -189,6 +189,7 @@ class Gem::Installer
if options[:user_install]
@gem_home = Gem.user_dir
@bin_dir = Gem.bindir gem_home unless options[:bin_dir]
@plugins_dir = Gem.plugindir(gem_home)
check_that_user_bin_dir_is_in_path
end
end