summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-11-04 01:51:18 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-11-04 01:51:18 +0000
commite4257036ec238d7185946f45bfb4370c6e0fc48b (patch)
tree0b7bde4c9addee456352b2576041f4291cdf290b
parent61982b1537a451e1150c7458677a5fb134d51457 (diff)
pathname.c: unnormalized Fixnum value
* ext/pathname/pathname.c (path_hash): fix unnormalized Fixnum value bug on mingw/mswin. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--ext/pathname/pathname.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index f6842cac21..549641f3c6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Fri Nov 4 10:51:16 2016 Nobuyoshi Nakada <[email protected]>
+
+ * ext/pathname/pathname.c (path_hash): fix unnormalized Fixnum
+ value bug on mingw/mswin.
+
Fri Nov 4 10:35:47 2016 Nobuyoshi Nakada <[email protected]>
* lib/fileutils.rb (FileUtils::Entry_#copy): ensure that the
diff --git a/ext/pathname/pathname.c b/ext/pathname/pathname.c
index 4fe8859353..5987ccf462 100644
--- a/ext/pathname/pathname.c
+++ b/ext/pathname/pathname.c
@@ -155,11 +155,15 @@ path_cmp(VALUE self, VALUE other)
return INT2FIX(0);
}
+#ifndef ST2FIX
+#define ST2FIX(h) LONG2FIX((long)(h))
+#endif
+
/* :nodoc: */
static VALUE
path_hash(VALUE self)
{
- return INT2FIX(rb_str_hash(get_strpath(self)));
+ return ST2FIX(rb_str_hash(get_strpath(self)));
}
/*