diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | thread.c | 13 |
2 files changed, 11 insertions, 6 deletions
@@ -1,3 +1,7 @@ +Thu Jul 16 02:56:14 2015 Eric Wong <e@80x24.org> + + * thread.c (thread_initialize): avoid RSTRING_PTR and NUMT2INT + Thu Jul 16 01:00:46 2015 Naohisa Goto <ngotogenome@gmail.com> * test/ruby/test_process.rb (test_exec_close_reserved_fd): test for @@ -769,17 +769,18 @@ thread_initialize(VALUE thread, VALUE args) GetThreadPtr(thread, th); if (th->first_args) { VALUE proc = th->first_proc, line, loc; - const char *file; + VALUE file; if (!proc || !RTEST(loc = rb_proc_location(proc))) { rb_raise(rb_eThreadError, "already initialized thread"); } - file = RSTRING_PTR(RARRAY_AREF(loc, 0)); + file = RARRAY_AREF(loc, 0); if (NIL_P(line = RARRAY_AREF(loc, 1))) { - rb_raise(rb_eThreadError, "already initialized thread - %s", - file); + rb_raise(rb_eThreadError, + "already initialized thread - %"PRIsVALUE, file); } - rb_raise(rb_eThreadError, "already initialized thread - %s:%d", - file, NUM2INT(line)); + rb_raise(rb_eThreadError, + "already initialized thread - %"PRIsVALUE":%"PRIsVALUE, + file, line); } return thread_create_core(thread, args, 0); } |