mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-16 17:27:33 +02:00
fxbit-set?
properly handles negative i
This commit is contained in:
parent
3cc79395fa
commit
fa58b9d538
2 changed files with 8 additions and 2 deletions
|
@ -10,6 +10,7 @@ Features
|
|||
Bug Fixes
|
||||
|
||||
- @nmeum fixed `(scheme repl)` to flush the output port prior to writing the prompt, guaranteeing the prompt is written at the correct time.
|
||||
- Fixed `fxbit-set?` to properly handle negative values of `i`.
|
||||
- Avoid unnecessary renaming of identifiers when the interpreter performs macro expansion.
|
||||
- When allocating a large vector we now guarantee all vector elements are initialized before the major collector can trace those elements. This avoids the potential for a race condition which could lead to a segmentation fault.
|
||||
- Ensure atomic objects are properly traced by the major garbage collector.
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
fxarithmetic-shift
|
||||
fxarithmetic-shift-left fxarithmetic-shift-right
|
||||
fxbit-count
|
||||
fxif fxbit-set? fxcopy-bit
|
||||
fxif fxcopy-bit
|
||||
fxfirst-set-bit
|
||||
fxbit-field
|
||||
mask
|
||||
|
@ -170,7 +170,12 @@
|
|||
(fxior (fxand mask n0)
|
||||
(fxand (fxnot mask) n1)))
|
||||
|
||||
(define-c fxbit-set?
|
||||
(define (fxbit-set? index i)
|
||||
(or (%fxbit-set? index i)
|
||||
(and (negative? i)
|
||||
(>= index (fxlength i)))))
|
||||
|
||||
(define-c %fxbit-set?
|
||||
"(void* data, int argc, closure _, object k, object index, object i)"
|
||||
" Cyc_check_fixnum(data, index);
|
||||
Cyc_check_fixnum(data, i);
|
||||
|
|
Loading…
Add table
Reference in a new issue