summaryrefslogtreecommitdiffstats
path: root/process.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-21 10:18:38 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-21 10:18:38 +0000
commit39070cabae3d911397c324323d6b7f29532f4915 (patch)
treebd5ea03be1886ee286df3f4568bbc82bffeeec4e /process.c
parent70a17d1da3e038eb2a36f6d26fd8c9b24e954ce9 (diff)
downloadruby-39070cabae3d911397c324323d6b7f29532f4915.tar.gz
ruby-39070cabae3d911397c324323d6b7f29532f4915.tar.xz
ruby-39070cabae3d911397c324323d6b7f29532f4915.zip
* 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: http://svn.ruby-lang.org/repos/ruby/trunk@18752 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'process.c')
-rw-r--r--process.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/process.c b/process.c
index c231920ee..22a889d9f 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)));