diff --git a/compile.c b/compile.c index 1159a9d21e..a4328d03fa 100644 --- a/compile.c +++ b/compile.c @@ -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 diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb index cf676854dc..cce2967cfd 100644 --- a/lib/rubygems/installer.rb +++ b/lib/rubygems/installer.rb @@ -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