[前][次][番号順一覧][スレッド一覧]

ruby-changes:11889

From: nobu <ko1@a...>
Date: Sat, 23 May 2009 18:49:10 +0900 (JST)
Subject: [ruby-changes:11889] Ruby:r23549 (trunk): * ext/dl/cptr.c (rb_dlptr_cmp): return signed value, and restrict

nobu	2009-05-23 18:48:54 +0900 (Sat, 23 May 2009)

  New Revision: 23549

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=23549

  Log:
    * ext/dl/cptr.c (rb_dlptr_cmp): return signed value, and restrict
      to Fixnum.  [ruby-dev:38533]

  Modified files:
    trunk/ChangeLog
    trunk/ext/dl/cptr.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 23548)
+++ ChangeLog	(revision 23549)
@@ -1,3 +1,8 @@
+Sat May 23 18:48:52 2009  Nobuyoshi Nakada  <nobu@r...>
+
+	* ext/dl/cptr.c (rb_dlptr_cmp): return signed value, and restric
+	  to Fixnum.  [ruby-dev:38533]
+
 Fri May 22 23:22:53 2009  Yuki Sonoda (Yugui)  <yugui@y...>
 
 	* missing/vsnprintf.c (errno): [BUG] fixes a compilation 
Index: ext/dl/cptr.c
===================================================================
--- ext/dl/cptr.c	(revision 23548)
+++ ext/dl/cptr.c	(revision 23549)
@@ -318,9 +318,12 @@
 rb_dlptr_cmp(VALUE self, VALUE other)
 {
     void *ptr1, *ptr2;
+    SIGNED_VALUE diff;
     ptr1 = rb_dlptr2cptr(self);
     ptr2 = rb_dlptr2cptr(other);
-    return PTR2NUM((long)ptr1 - (long)ptr2);
+    diff = (SIGNED_VALUE)ptr1 - (SIGNED_VALUE)ptr2;
+    if (!diff) return INT2FIX(0);
+    return diff > 0 ? INT2NUM(1) : INT2NUM(-1);
 }
 
 VALUE

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]