aboutsummaryrefslogtreecommitdiffstats
path: root/string.c
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-04-30 22:32:05 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-04-30 22:32:05 +0000
commit12aa4f0a57619d083429d94519af45656cd243aa (patch)
treebf2bb47ce27e83ecbedec9ab753bfbe4d87e119b /string.c
parentc33cf79b10de6e1c9efb05f541976eefc2a042b0 (diff)
downloadruby-12aa4f0a57619d083429d94519af45656cd243aa.tar.gz
* string.c (search_nonascii): use nlz on big endian environments.
* internal.h (nlz_intpr): defined. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'string.c')
-rw-r--r--string.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/string.c b/string.c
index 04fc5d063d..3bcaa6cd64 100644
--- a/string.c
+++ b/string.c
@@ -449,7 +449,11 @@ search_nonascii(const char *p, const char *e)
const uintptr_t *t = (const uintptr_t *)(e - (SIZEOF_VOIDP-1));
for (;s < t; s++) {
if (*s & NONASCII_MASK) {
+#if BYTE_ORDER == LITTLE_ENDIAN
return (const char *)s + (ntz_intptr(*s&NONASCII_MASK)>>3);
+#else
+ return (const char *)s + (nlz_intptr(*s&NONASCII_MASK)>>3);
+#endif
}
}
p = (const char *)s;