aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--thread.c13
2 files changed, 11 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index e1ad7b3131..ec52658617 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
diff --git a/thread.c b/thread.c
index f80fcf6bf4..95b022f542 100644
--- a/thread.c
+++ b/thread.c
@@ -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);
}