Add ugpr and umem types
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
* ListDLC: Dynamic, Linear growth, C-managed
|
||||
*/
|
||||
|
||||
extern u8*(u8*, u32) realloc;
|
||||
extern u8*(u8*, ugpr) realloc;
|
||||
|
||||
record ListDLC[T, S; growth] {
|
||||
S capacity;
|
||||
@@ -31,7 +31,7 @@ ListDLC_remove: [T, S; growth]u0(ListDLC[T, S; growth]* this, S index) -> {
|
||||
|
||||
ListDLC_add: [T, S; growth]u0(ListDLC[T, S; growth]* this, T value) -> {
|
||||
if((*this).size == (*this).capacity) {
|
||||
u32 newcap = (*this).capacity + growth;
|
||||
S newcap = (*this).capacity + growth;
|
||||
(*this).capacity = newcap;
|
||||
(*this).data = realloc((*this).data, newcap * @sizeof T);
|
||||
}
|
||||
|
||||
@@ -2,16 +2,16 @@ use ListDLC;
|
||||
|
||||
@section(".text");
|
||||
|
||||
@instantiate ListDLC_remove[u32, u32; 9];
|
||||
@instantiate ListDLC_add[u32, u32; 9];
|
||||
@instantiate ListDLC_remove[u16, u16; 9];
|
||||
@instantiate ListDLC_add[u16, u16; 9];
|
||||
|
||||
main: u0() -> {
|
||||
ListDLC[u32, u32; 9] list;
|
||||
ListDLC_add[u32, u32; 9](&list, 1234);
|
||||
ListDLC_add[u32, u32; 9](&list, 4321);
|
||||
ListDLC_add[u32, u32; 9](&list, 7777);
|
||||
ListDLC_add[u32, u32; 9](&list, 6969);
|
||||
ListDLC_remove[u32, u32; 9](&list, 1);
|
||||
ListDLC[u16, u16; 9] list;
|
||||
ListDLC_add[u16, u16; 9](&list, 1234);
|
||||
ListDLC_add[u16, u16; 9](&list, 4321);
|
||||
ListDLC_add[u16, u16; 9](&list, 7777);
|
||||
ListDLC_add[u16, u16; 9](&list, 6969);
|
||||
ListDLC_remove[u16, u16; 9](&list, 1);
|
||||
return;
|
||||
};
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
fibonacci: u32(u32 n) -> {
|
||||
fibonacci: u16(u16 n) -> {
|
||||
if(n <= 1) {
|
||||
return n;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user