Summary
byte-blob-find fails on certain matches on 32-bit Chicken
Metadata
- Id: 945058f03384f0740c1024364811813f8c828600
- Trac id: 1037
- Type: defect
- Reporter: dthedens
- Owner: iraikov
- Cc:
- Status: closed
- Component: extensions
- Estimated difficulty:
- Resolution: fixed
- Priority: major
- Milestone: someday
- Version: 4.7.x
- Changetime: 2013-08-02 07:43:02 UTC
- Created: 2013-07-26 02:55:49 UTC
- Keywords: byte-blob, 32-bit
Description
(byte-blob-find (list->byte-blob (list 1 31)) (list->byte-blob (list 0 1 31 3)))
fails to match on 32-bit, but succeeds on 64-bit. Replace 31 with any byte value with low 5 bits all set (63, 95, etc.) and matches also fail. This may be related to the fact that internal function (swizzle 31) -> 0 on 32-bit, but is #x80000000 on 64-bit.
Changes and comments
[2013-07-29 07:40:03 UTC] iraikov changed status from new to accepted
[2013-07-29 07:40:03 UTC] iraikov set owner to iraikov
[2013-07-29 07:40:03 UTC] iraikov wrote:
Hello, thanks for the bug report. I have rewritten swizzle so that it does not rely on 64-bit integers, and I have made a new release of byte-blob. Please try it out and let me know if it works for you.
[2013-07-31 03:50:31 UTC] dthedens wrote:
Yes, this seems to have fixed my small test case as well as my original problem on 32 bit. Thanks for the quick turnaround!