Fix default make parameters for dynamic arrays

This commit is contained in:
gingerBill
2018-08-09 18:15:49 +01:00
parent 708907df31
commit 8be9b5082c
2 changed files with 10 additions and 5 deletions

View File

@@ -110,10 +110,13 @@ make_slice :: proc(T: type/[]$E, auto_cast len: int, loc := #caller_location) ->
s := Raw_Slice{data, len};
return transmute(T)s;
}
make_dynamic_array_len :: proc(T: type/[dynamic]$E, auto_cast len: int = 16, loc := #caller_location) -> T {
return make_dynamic_array(T, len, len, loc);
make_dynamic_array :: proc(T: type/[dynamic]$E, loc := #caller_location) -> T {
return make_dynamic_array_len_cap(T, 0, 16, loc);
}
make_dynamic_array :: proc(T: type/[dynamic]$E, auto_cast len: int, auto_cast cap: int, loc := #caller_location) -> T {
make_dynamic_array_len :: proc(T: type/[dynamic]$E, auto_cast len: int, loc := #caller_location) -> T {
return make_dynamic_array_len_cap(T, len, len, loc);
}
make_dynamic_array_len_cap :: proc(T: type/[dynamic]$E, auto_cast len: int, auto_cast cap: int, loc := #caller_location) -> T {
runtime.make_dynamic_array_error_loc(loc, len, cap);
data := alloc(size_of(E)*cap, align_of(E));
s := Raw_Dynamic_Array{data, len, cap, context.allocator};
@@ -128,8 +131,9 @@ make_map :: proc(T: type/map[$K]$E, auto_cast cap: int = 16, loc := #caller_loca
make :: proc[
make_slice,
make_dynamic_array_len,
make_dynamic_array,
make_dynamic_array_len,
make_dynamic_array_len_cap,
make_map,
];

View File

@@ -328,8 +328,9 @@ delete :: proc[
@(builtin)
make :: proc[
mem.make_slice,
mem.make_dynamic_array_len,
mem.make_dynamic_array,
mem.make_dynamic_array_len,
mem.make_dynamic_array_len_cap,
mem.make_map,
];