Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Prevent GC by volatile [Bug #13150]
test/ruby/test_marshal.rb test_context_switch (load) and test_gc (dump)
are failed on FreeBSD 10.3 and gcc7 (FreeBSD Ports Collection) 7.0.0
20170115 (experimental); RB_GC_GUARD looks not worked well.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information
nurse committed Jan 23, 2017
1 parent be220c4 commit 7c1b30a
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions marshal.c
Expand Up @@ -1024,7 +1024,7 @@ VALUE
rb_marshal_dump_limited(VALUE obj, VALUE port, int limit)
{
struct dump_arg *arg;
VALUE wrapper; /* used to avoid memory leak in case of exception */
volatile VALUE wrapper; /* used to avoid memory leak in case of exception */

wrapper = TypedData_Make_Struct(rb_cData, struct dump_arg, &dump_arg_data, arg);
arg->dest = 0;
Expand Down Expand Up @@ -2038,7 +2038,7 @@ rb_marshal_load_with_proc(VALUE port, VALUE proc)
{
int major, minor, infection = 0;
VALUE v;
VALUE wrapper; /* used to avoid memory leak in case of exception */
volatile VALUE wrapper; /* used to avoid memory leak in case of exception */
struct load_arg *arg;

v = rb_check_string_type(port);
Expand Down

0 comments on commit 7c1b30a

Please sign in to comment.