fixed arena.h dependency changes
This commit is contained in:
parent
2c1edf668a
commit
69750cabf9
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
[submodule "arena.h"]
|
||||
path = arena.h
|
||||
url = ssh://gitea@188.157.159.51:8122/prenex/arena.h.git
|
@ -1,6 +1,6 @@
|
||||
#ifndef VIRTUAL_MEM_LIST_H
|
||||
#define VIRTUAL_MEM_LIST_H
|
||||
#include "arena.h"
|
||||
#include "arena.h/arena.h"
|
||||
|
||||
#ifndef VML_NOINLINE
|
||||
#define VML_NOINLINE __attribute__((noinline))
|
||||
@ -29,7 +29,7 @@ class VirtualMemList {
|
||||
public:
|
||||
VML_INLINE VirtualMemList(uint32_t initial_size = 0) noexcept {
|
||||
a = newarena((ptrdiff_t)1 << 33);
|
||||
base = ((T*) alloc(&a, sizeof(T), sizeof(T), 1)) + 1;
|
||||
base = ((T*) aralloc(&a, sizeof(T), sizeof(T), 1)) + 1;
|
||||
end = initial_size;
|
||||
}
|
||||
|
||||
@ -46,11 +46,11 @@ public:
|
||||
// base[end++] = elem;
|
||||
|
||||
// Non-working, but logically better solution:
|
||||
// T *value = (T*) alloc(&a, sizeof(T), sizeof(T), 1);
|
||||
// T *value = (T*) aralloc(&a, sizeof(T), sizeof(T), 1);
|
||||
// *value = elem;
|
||||
|
||||
// Longer solution (more correct - but I let it waste a bit of memory)
|
||||
T *value = (T*) alloc(&a, sizeof(T), sizeof(T), 1);
|
||||
T *value = (T*) aralloc(&a, sizeof(T), sizeof(T), 1);
|
||||
base[end++] = elem;
|
||||
}
|
||||
|
||||
|
1
arena.h
Submodule
1
arena.h
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 3037bf6bec96b0ebc231510d308da1daece276fd
|
26
main.cpp
26
main.cpp
@ -10,7 +10,7 @@
|
||||
#define TLT int
|
||||
#include "turbolist.h"
|
||||
|
||||
#include"arena.h"
|
||||
#include"arena.h/arena.h"
|
||||
|
||||
// #define PRINT_DBG
|
||||
// #define N 65535
|
||||
@ -133,7 +133,7 @@ int main() {
|
||||
// malloc-like
|
||||
[](size_t size) {
|
||||
static thread_local arena a = newarena((ptrdiff_t)1 << 33);
|
||||
return (void*) alloc(&a, sizeof(uint8_t), sizeof(uint8_t), size);
|
||||
return (void*) aralloc(&a, sizeof(uint8_t), sizeof(uint8_t), size);
|
||||
},
|
||||
// free-like
|
||||
[](void *ptr) {},
|
||||
@ -174,29 +174,29 @@ int main() {
|
||||
arena a9 = newarena((ptrdiff_t)1 << 33);
|
||||
*/
|
||||
// steps at first real elem, there should be N from here!
|
||||
int *arenalist = ((int*)alloc(&a, sizeof(int), sizeof(int), 1)) + 1;
|
||||
int *arenalist = ((int *)aralloc(&a, sizeof(int), sizeof(int), 1)) + 1;
|
||||
for(int i = 0; i < N; ++i) {
|
||||
int *value = (int*)alloc(&a, sizeof(int), sizeof(int), 1);
|
||||
int *value = (int *)aralloc(&a, sizeof(int), sizeof(int), 1);
|
||||
*value = i;
|
||||
|
||||
/*
|
||||
value = (int*)alloc(&a1, sizeof(int), sizeof(int), 1);
|
||||
value = (int*)aralloc(&a1, sizeof(int), sizeof(int), 1);
|
||||
*value = i;
|
||||
value = (int*)alloc(&a2, sizeof(int), sizeof(int), 1);
|
||||
value = (int*)aralloc(&a2, sizeof(int), sizeof(int), 1);
|
||||
*value = i;
|
||||
value = (int*)alloc(&a3, sizeof(int), sizeof(int), 1);
|
||||
value = (int*)aralloc(&a3, sizeof(int), sizeof(int), 1);
|
||||
*value = i;
|
||||
value = (int*)alloc(&a4, sizeof(int), sizeof(int), 1);
|
||||
value = (int*)aralloc(&a4, sizeof(int), sizeof(int), 1);
|
||||
*value = i;
|
||||
value = (int*)alloc(&a5, sizeof(int), sizeof(int), 1);
|
||||
value = (int*)aralloc(&a5, sizeof(int), sizeof(int), 1);
|
||||
*value = i;
|
||||
value = (int*)alloc(&a6, sizeof(int), sizeof(int), 1);
|
||||
value = (int*)aralloc(&a6, sizeof(int), sizeof(int), 1);
|
||||
*value = i;
|
||||
value = (int*)alloc(&a7, sizeof(int), sizeof(int), 1);
|
||||
value = (int*)aralloc(&a7, sizeof(int), sizeof(int), 1);
|
||||
*value = i;
|
||||
value = (int*)alloc(&a8, sizeof(int), sizeof(int), 1);
|
||||
value = (int*)aralloc(&a8, sizeof(int), sizeof(int), 1);
|
||||
*value = i;
|
||||
value = (int*)alloc(&a9, sizeof(int), sizeof(int), 1);
|
||||
value = (int*)aralloc(&a9, sizeof(int), sizeof(int), 1);
|
||||
*value = i;
|
||||
*/
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user