From e90ccd3beb0b9bf1125461ef68943578739bebbe Mon Sep 17 00:00:00 2001 From: ngoto Date: Wed, 19 Dec 2012 14:47:26 +0000 Subject: * marshal.c (marshal_dump, marshal_load): fix SEGV during make rdoc and test failure in TestMarshal#test_gc and test_context_switch on SPARC Solaris 10 compiled with Oracle Solaris Studio 12.3. [Bug #7591] [ruby-dev:46772] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- marshal.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'marshal.c') diff --git a/marshal.c b/marshal.c index 8c60e5d80a..d58380581e 100644 --- a/marshal.c +++ b/marshal.c @@ -934,7 +934,7 @@ marshal_dump(int argc, VALUE *argv) else if (NIL_P(a1)) io_needed(); else port = a1; } - wrapper = TypedData_Make_Struct(rb_cData, struct dump_arg, &dump_arg_data, arg); + RB_GC_GUARD(wrapper) = TypedData_Make_Struct(rb_cData, struct dump_arg, &dump_arg_data, arg); arg->dest = 0; arg->symbols = st_init_numtable(); arg->data = st_init_numtable(); @@ -1907,7 +1907,7 @@ marshal_load(int argc, VALUE *argv) else { io_needed(); } - wrapper = TypedData_Make_Struct(rb_cData, struct load_arg, &load_arg_data, arg); + RB_GC_GUARD(wrapper) = TypedData_Make_Struct(rb_cData, struct load_arg, &load_arg_data, arg); arg->infection = infection; arg->src = port; arg->offset = 0; -- cgit v1.2.3