From 61acccefb7b90ab8dcbccc216e56c0ea61f1b54a Mon Sep 17 00:00:00 2001 From: akr Date: Thu, 21 Aug 2008 10:18:38 +0000 Subject: * process.c (pst_pid): use rb_attr_get to avoid warning on Process::Status.allocate.pid. (pst_inspect): don't raise if self is not initialized. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18752 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ process.c | 10 +++++++--- test/ruby/test_process.rb | 3 +++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2fc7753374..6e2428b889 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Thu Aug 21 19:17:02 2008 Tanaka Akira + + * process.c (pst_pid): use rb_attr_get to avoid warning on + Process::Status.allocate.pid. + (pst_inspect): don't raise if self is not initialized. + Thu Aug 21 19:05:40 2008 Tanaka Akira * io.c (io_extract_encoding_option): if internal encoding is not diff --git a/process.c b/process.c index c231920eed..22a889d9fd 100644 --- a/process.c +++ b/process.c @@ -271,7 +271,7 @@ pst_to_i(VALUE st) static VALUE pst_pid(VALUE st) { - return rb_iv_get(st, "pid"); + return rb_attr_get(st, rb_intern("pid")); } static void @@ -344,9 +344,13 @@ pst_inspect(VALUE st) { rb_pid_t pid; int status; - VALUE str; + VALUE vpid, str; - pid = NUM2LONG(pst_pid(st)); + vpid = pst_pid(st); + if (NIL_P(vpid)) { + return rb_sprintf("#<%s: uninitialized>", rb_class2name(CLASS_OF(st))); + } + pid = NUM2LONG(vpid); status = PST2INT(st); str = rb_sprintf("#<%s: ", rb_class2name(CLASS_OF(st))); diff --git a/test/ruby/test_process.rb b/test/ruby/test_process.rb index 668d054743..afcda48912 100644 --- a/test/ruby/test_process.rb +++ b/test/ruby/test_process.rb @@ -1001,4 +1001,7 @@ class TestProcess < Test::Unit::TestCase assert(true == r || false == r) end + def test_pst_inspect + assert_nothing_raised { Process::Status.allocate.inspect } + end end -- cgit v1.2.3