|
@@ -27,7 +27,7 @@ int_destroy :: proc(integers: ..^Int) {
|
|
for a in &integers {
|
|
for a in &integers {
|
|
assert_if_nil(a)
|
|
assert_if_nil(a)
|
|
}
|
|
}
|
|
- #force_inline internal_int_destroy(..integers);
|
|
|
|
|
|
+ #force_inline internal_int_destroy(..integers)
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -42,7 +42,7 @@ int_set_from_integer :: proc(dest: ^Int, src: $T, minimize := false, allocator :
|
|
Check that `src` is usable and `dest` isn't immutable.
|
|
Check that `src` is usable and `dest` isn't immutable.
|
|
*/
|
|
*/
|
|
assert_if_nil(dest)
|
|
assert_if_nil(dest)
|
|
- #force_inline internal_error_if_immutable(dest) or_return;
|
|
|
|
|
|
+ #force_inline internal_error_if_immutable(dest) or_return
|
|
|
|
|
|
return #force_inline internal_int_set_from_integer(dest, src, minimize)
|
|
return #force_inline internal_int_set_from_integer(dest, src, minimize)
|
|
}
|
|
}
|
|
@@ -64,8 +64,8 @@ int_copy :: proc(dest, src: ^Int, minimize := false, allocator := context.alloca
|
|
assert_if_nil(dest, src)
|
|
assert_if_nil(dest, src)
|
|
context.allocator = allocator
|
|
context.allocator = allocator
|
|
|
|
|
|
- #force_inline internal_clear_if_uninitialized(src) or_return;
|
|
|
|
- #force_inline internal_error_if_immutable(dest) or_return;
|
|
|
|
|
|
+ #force_inline internal_clear_if_uninitialized(src) or_return
|
|
|
|
+ #force_inline internal_error_if_immutable(dest) or_return
|
|
|
|
|
|
return #force_inline internal_int_copy(dest, src, minimize)
|
|
return #force_inline internal_int_copy(dest, src, minimize)
|
|
}
|
|
}
|
|
@@ -78,7 +78,7 @@ copy :: proc { int_copy, }
|
|
*/
|
|
*/
|
|
int_swap :: proc(a, b: ^Int) {
|
|
int_swap :: proc(a, b: ^Int) {
|
|
assert_if_nil(a, b)
|
|
assert_if_nil(a, b)
|
|
- #force_inline internal_swap(a, b);
|
|
|
|
|
|
+ #force_inline internal_swap(a, b)
|
|
}
|
|
}
|
|
swap :: proc { int_swap, }
|
|
swap :: proc { int_swap, }
|
|
|
|
|
|
@@ -92,8 +92,8 @@ int_abs :: proc(dest, src: ^Int, allocator := context.allocator) -> (err: Error)
|
|
assert_if_nil(dest, src)
|
|
assert_if_nil(dest, src)
|
|
context.allocator = allocator
|
|
context.allocator = allocator
|
|
|
|
|
|
- #force_inline internal_clear_if_uninitialized(src) or_return;
|
|
|
|
- #force_inline internal_error_if_immutable(dest) or_return;
|
|
|
|
|
|
+ #force_inline internal_clear_if_uninitialized(src) or_return
|
|
|
|
+ #force_inline internal_error_if_immutable(dest) or_return
|
|
|
|
|
|
return #force_inline internal_int_abs(dest, src)
|
|
return #force_inline internal_int_abs(dest, src)
|
|
}
|
|
}
|
|
@@ -113,8 +113,8 @@ int_neg :: proc(dest, src: ^Int, allocator := context.allocator) -> (err: Error)
|
|
assert_if_nil(dest, src)
|
|
assert_if_nil(dest, src)
|
|
context.allocator = allocator
|
|
context.allocator = allocator
|
|
|
|
|
|
- #force_inline internal_clear_if_uninitialized(src) or_return;
|
|
|
|
- #force_inline internal_error_if_immutable(dest) or_return;
|
|
|
|
|
|
+ #force_inline internal_clear_if_uninitialized(src) or_return
|
|
|
|
+ #force_inline internal_error_if_immutable(dest) or_return
|
|
|
|
|
|
return #force_inline internal_int_neg(dest, src)
|
|
return #force_inline internal_int_neg(dest, src)
|
|
}
|
|
}
|
|
@@ -134,7 +134,7 @@ int_bitfield_extract :: proc(a: ^Int, offset, count: int, allocator := context.a
|
|
assert_if_nil(a)
|
|
assert_if_nil(a)
|
|
context.allocator = allocator
|
|
context.allocator = allocator
|
|
|
|
|
|
- #force_inline internal_clear_if_uninitialized(a) or_return;
|
|
|
|
|
|
+ #force_inline internal_clear_if_uninitialized(a) or_return
|
|
return #force_inline internal_int_bitfield_extract(a, offset, count)
|
|
return #force_inline internal_int_bitfield_extract(a, offset, count)
|
|
}
|
|
}
|
|
|
|
|
|
@@ -148,7 +148,7 @@ shrink :: proc(a: ^Int, allocator := context.allocator) -> (err: Error) {
|
|
assert_if_nil(a)
|
|
assert_if_nil(a)
|
|
context.allocator = allocator
|
|
context.allocator = allocator
|
|
|
|
|
|
- #force_inline internal_clear_if_uninitialized(a) or_return;
|
|
|
|
|
|
+ #force_inline internal_clear_if_uninitialized(a) or_return
|
|
return #force_inline internal_shrink(a)
|
|
return #force_inline internal_shrink(a)
|
|
}
|
|
}
|
|
|
|
|
|
@@ -305,7 +305,7 @@ int_get :: proc(a: ^Int, $T: typeid, allocator := context.allocator) -> (res: T,
|
|
Check that `a` is usable.
|
|
Check that `a` is usable.
|
|
*/
|
|
*/
|
|
assert_if_nil(a)
|
|
assert_if_nil(a)
|
|
- #force_inline internal_clear_if_uninitialized(a, allocator) or_return;
|
|
|
|
|
|
+ #force_inline internal_clear_if_uninitialized(a, allocator) or_return
|
|
return #force_inline internal_int_get(a, T)
|
|
return #force_inline internal_int_get(a, T)
|
|
}
|
|
}
|
|
get :: proc { int_get, }
|
|
get :: proc { int_get, }
|
|
@@ -315,7 +315,7 @@ int_get_float :: proc(a: ^Int, allocator := context.allocator) -> (res: f64, err
|
|
Check that `a` is usable.
|
|
Check that `a` is usable.
|
|
*/
|
|
*/
|
|
assert_if_nil(a)
|
|
assert_if_nil(a)
|
|
- #force_inline internal_clear_if_uninitialized(a, allocator) or_return;
|
|
|
|
|
|
+ #force_inline internal_clear_if_uninitialized(a, allocator) or_return
|
|
return #force_inline internal_int_get_float(a)
|
|
return #force_inline internal_int_get_float(a)
|
|
}
|
|
}
|
|
|
|
|
|
@@ -327,7 +327,7 @@ count_bits :: proc(a: ^Int, allocator := context.allocator) -> (count: int, err:
|
|
Check that `a` is usable.
|
|
Check that `a` is usable.
|
|
*/
|
|
*/
|
|
assert_if_nil(a)
|
|
assert_if_nil(a)
|
|
- #force_inline internal_clear_if_uninitialized(a, allocator) or_return;
|
|
|
|
|
|
+ #force_inline internal_clear_if_uninitialized(a, allocator) or_return
|
|
return #force_inline internal_count_bits(a), nil
|
|
return #force_inline internal_count_bits(a), nil
|
|
}
|
|
}
|
|
|
|
|
|
@@ -340,7 +340,7 @@ int_count_lsb :: proc(a: ^Int, allocator := context.allocator) -> (count: int, e
|
|
Check that `a` is usable.
|
|
Check that `a` is usable.
|
|
*/
|
|
*/
|
|
assert_if_nil(a)
|
|
assert_if_nil(a)
|
|
- #force_inline internal_clear_if_uninitialized(a, allocator) or_return;
|
|
|
|
|
|
+ #force_inline internal_clear_if_uninitialized(a, allocator) or_return
|
|
return #force_inline internal_int_count_lsb(a)
|
|
return #force_inline internal_int_count_lsb(a)
|
|
}
|
|
}
|
|
|
|
|
|
@@ -385,7 +385,7 @@ zero_unused :: proc(dest: ^Int, old_used := -1) {
|
|
assert_if_nil(dest)
|
|
assert_if_nil(dest)
|
|
if ! #force_inline is_initialized(dest) { return; }
|
|
if ! #force_inline is_initialized(dest) { return; }
|
|
|
|
|
|
- #force_inline internal_zero_unused(dest, old_used);
|
|
|
|
|
|
+ #force_inline internal_zero_unused(dest, old_used)
|
|
}
|
|
}
|
|
|
|
|
|
clear_if_uninitialized_single :: proc(arg: ^Int, allocator := context.allocator) -> (err: Error) {
|
|
clear_if_uninitialized_single :: proc(arg: ^Int, allocator := context.allocator) -> (err: Error) {
|
|
@@ -398,7 +398,7 @@ clear_if_uninitialized_multi :: proc(args: ..^Int, allocator := context.allocato
|
|
assert_if_nil(..args)
|
|
assert_if_nil(..args)
|
|
|
|
|
|
for i in &args {
|
|
for i in &args {
|
|
- #force_inline internal_clear_if_uninitialized_single(i, allocator) or_return;
|
|
|
|
|
|
+ #force_inline internal_clear_if_uninitialized_single(i, allocator) or_return
|
|
}
|
|
}
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
@@ -425,7 +425,7 @@ int_init_multi :: proc(integers: ..^Int, allocator := context.allocator) -> (err
|
|
|
|
|
|
integers := integers
|
|
integers := integers
|
|
for a in &integers {
|
|
for a in &integers {
|
|
- #force_inline internal_clear(a, true, allocator) or_return;
|
|
|
|
|
|
+ #force_inline internal_clear(a, true, allocator) or_return
|
|
}
|
|
}
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
@@ -439,7 +439,7 @@ copy_digits :: proc(dest, src: ^Int, digits: int, offset := int(0), allocator :=
|
|
Check that `src` is usable and `dest` isn't immutable.
|
|
Check that `src` is usable and `dest` isn't immutable.
|
|
*/
|
|
*/
|
|
assert_if_nil(dest, src)
|
|
assert_if_nil(dest, src)
|
|
- #force_inline internal_clear_if_uninitialized(src) or_return;
|
|
|
|
|
|
+ #force_inline internal_clear_if_uninitialized(src) or_return
|
|
|
|
|
|
return #force_inline internal_copy_digits(dest, src, digits, offset)
|
|
return #force_inline internal_copy_digits(dest, src, digits, offset)
|
|
}
|
|
}
|
|
@@ -452,7 +452,7 @@ copy_digits :: proc(dest, src: ^Int, digits: int, offset := int(0), allocator :=
|
|
*/
|
|
*/
|
|
clamp :: proc(a: ^Int, allocator := context.allocator) -> (err: Error) {
|
|
clamp :: proc(a: ^Int, allocator := context.allocator) -> (err: Error) {
|
|
assert_if_nil(a)
|
|
assert_if_nil(a)
|
|
- #force_inline internal_clear_if_uninitialized(a, allocator) or_return;
|
|
|
|
|
|
+ #force_inline internal_clear_if_uninitialized(a, allocator) or_return
|
|
|
|
|
|
for a.used > 0 && a.digit[a.used - 1] == 0 {
|
|
for a.used > 0 && a.digit[a.used - 1] == 0 {
|
|
a.used -= 1
|
|
a.used -= 1
|
|
@@ -470,7 +470,7 @@ clamp :: proc(a: ^Int, allocator := context.allocator) -> (err: Error) {
|
|
*/
|
|
*/
|
|
int_to_bytes_size :: proc(a: ^Int, signed := false, allocator := context.allocator) -> (size_in_bytes: int, err: Error) {
|
|
int_to_bytes_size :: proc(a: ^Int, signed := false, allocator := context.allocator) -> (size_in_bytes: int, err: Error) {
|
|
assert_if_nil(a)
|
|
assert_if_nil(a)
|
|
- #force_inline internal_clear_if_uninitialized(a, allocator) or_return;
|
|
|
|
|
|
+ #force_inline internal_clear_if_uninitialized(a, allocator) or_return
|
|
|
|
|
|
size_in_bits := internal_count_bits(a)
|
|
size_in_bits := internal_count_bits(a)
|
|
|
|
|