changeset: 95192:3ac58de829ef user: Victor Stinner date: Wed Mar 25 03:16:32 2015 +0100 files: Objects/bytearrayobject.c Objects/bytesobject.c description: Issue #23573: Fix bytes.rfind() and bytearray.rfind() on Windows Windows has no memrchr() function. This change is only a workaround, the optimization must be reenabled on other platforms. diff -r 033dbab6fe5f -r 3ac58de829ef Objects/bytearrayobject.c --- a/Objects/bytearrayobject.c Wed Mar 25 02:30:01 2015 +0100 +++ b/Objects/bytearrayobject.c Wed Mar 25 03:16:32 2015 +0100 @@ -1166,7 +1166,8 @@ ADJUST_INDICES(start, end, len); if (end - start < sub_len) res = -1; - else if (sub_len == 1) { + /* Issue #23573: FIXME, windows has no memrchr() */ + else if (sub_len == 1 && dir > 0) { unsigned char needle = *sub; int mode = (dir > 0) ? FAST_SEARCH : FAST_RSEARCH; res = stringlib_fastsearch_memchr_1char( diff -r 033dbab6fe5f -r 3ac58de829ef Objects/bytesobject.c --- a/Objects/bytesobject.c Wed Mar 25 02:30:01 2015 +0100 +++ b/Objects/bytesobject.c Wed Mar 25 03:16:32 2015 +0100 @@ -1938,7 +1938,8 @@ ADJUST_INDICES(start, end, len); if (end - start < sub_len) res = -1; - else if (sub_len == 1) { + /* Issue #23573: FIXME, windows has no memrchr() */ + else if (sub_len == 1 && dir > 0) { unsigned char needle = *sub; int mode = (dir > 0) ? FAST_SEARCH : FAST_RSEARCH; res = stringlib_fastsearch_memchr_1char(