|
@@ -222,10 +222,10 @@ new_clone :: proc(data: $T, allocator := context.allocator, loc := #caller_locat
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-make_slice :: proc($T: typeid/[]$E, auto_cast len: int, allocator := context.allocator, loc := #caller_location) -> T {
|
|
|
|
|
|
+make_slice :: proc($T: typeid/[]$E, #any_int len: int, allocator := context.allocator, loc := #caller_location) -> T {
|
|
return make_aligned(T, len, align_of(E), allocator, loc);
|
|
return make_aligned(T, len, align_of(E), allocator, loc);
|
|
}
|
|
}
|
|
-make_aligned :: proc($T: typeid/[]$E, auto_cast len: int, alignment: int, allocator := context.allocator, loc := #caller_location) -> T {
|
|
|
|
|
|
+make_aligned :: proc($T: typeid/[]$E, #any_int len: int, alignment: int, allocator := context.allocator, loc := #caller_location) -> T {
|
|
runtime.make_slice_error_loc(loc, len);
|
|
runtime.make_slice_error_loc(loc, len);
|
|
data := alloc(size_of(E)*len, alignment, allocator, loc);
|
|
data := alloc(size_of(E)*len, alignment, allocator, loc);
|
|
if data == nil && size_of(E) != 0 {
|
|
if data == nil && size_of(E) != 0 {
|
|
@@ -238,10 +238,10 @@ make_aligned :: proc($T: typeid/[]$E, auto_cast len: int, alignment: int, alloca
|
|
make_dynamic_array :: proc($T: typeid/[dynamic]$E, allocator := context.allocator, loc := #caller_location) -> T {
|
|
make_dynamic_array :: proc($T: typeid/[dynamic]$E, allocator := context.allocator, loc := #caller_location) -> T {
|
|
return make_dynamic_array_len_cap(T, 0, 16, allocator, loc);
|
|
return make_dynamic_array_len_cap(T, 0, 16, allocator, loc);
|
|
}
|
|
}
|
|
-make_dynamic_array_len :: proc($T: typeid/[dynamic]$E, auto_cast len: int, allocator := context.allocator, loc := #caller_location) -> T {
|
|
|
|
|
|
+make_dynamic_array_len :: proc($T: typeid/[dynamic]$E, #any_int len: int, allocator := context.allocator, loc := #caller_location) -> T {
|
|
return make_dynamic_array_len_cap(T, len, len, allocator, loc);
|
|
return make_dynamic_array_len_cap(T, len, len, allocator, loc);
|
|
}
|
|
}
|
|
-make_dynamic_array_len_cap :: proc($T: typeid/[dynamic]$E, auto_cast len: int, auto_cast cap: int, allocator := context.allocator, loc := #caller_location) -> T {
|
|
|
|
|
|
+make_dynamic_array_len_cap :: proc($T: typeid/[dynamic]$E, #any_int len: int, #any_int cap: int, allocator := context.allocator, loc := #caller_location) -> T {
|
|
runtime.make_dynamic_array_error_loc(loc, len, cap);
|
|
runtime.make_dynamic_array_error_loc(loc, len, cap);
|
|
data := alloc(size_of(E)*cap, align_of(E), allocator, loc);
|
|
data := alloc(size_of(E)*cap, align_of(E), allocator, loc);
|
|
s := Raw_Dynamic_Array{data, len, cap, allocator};
|
|
s := Raw_Dynamic_Array{data, len, cap, allocator};
|
|
@@ -251,7 +251,7 @@ make_dynamic_array_len_cap :: proc($T: typeid/[dynamic]$E, auto_cast len: int, a
|
|
zero(data, size_of(E)*len);
|
|
zero(data, size_of(E)*len);
|
|
return transmute(T)s;
|
|
return transmute(T)s;
|
|
}
|
|
}
|
|
-make_map :: proc($T: typeid/map[$K]$E, auto_cast cap: int = 16, allocator := context.allocator, loc := #caller_location) -> T {
|
|
|
|
|
|
+make_map :: proc($T: typeid/map[$K]$E, #any_int cap: int = 16, allocator := context.allocator, loc := #caller_location) -> T {
|
|
runtime.make_map_expr_error_loc(loc, cap);
|
|
runtime.make_map_expr_error_loc(loc, cap);
|
|
context.allocator = allocator;
|
|
context.allocator = allocator;
|
|
|
|
|