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
|
#ifndef VIRTUAL_MEM_LIST_H
|
||||||
#define VIRTUAL_MEM_LIST_H
|
#define VIRTUAL_MEM_LIST_H
|
||||||
#include "arena.h"
|
#include "arena.h/arena.h"
|
||||||
|
|
||||||
#ifndef VML_NOINLINE
|
#ifndef VML_NOINLINE
|
||||||
#define VML_NOINLINE __attribute__((noinline))
|
#define VML_NOINLINE __attribute__((noinline))
|
||||||
@ -29,7 +29,7 @@ class VirtualMemList {
|
|||||||
public:
|
public:
|
||||||
VML_INLINE VirtualMemList(uint32_t initial_size = 0) noexcept {
|
VML_INLINE VirtualMemList(uint32_t initial_size = 0) noexcept {
|
||||||
a = newarena((ptrdiff_t)1 << 33);
|
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;
|
end = initial_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,11 +46,11 @@ public:
|
|||||||
// base[end++] = elem;
|
// base[end++] = elem;
|
||||||
|
|
||||||
// Non-working, but logically better solution:
|
// 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;
|
// *value = elem;
|
||||||
|
|
||||||
// Longer solution (more correct - but I let it waste a bit of memory)
|
// 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;
|
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
|
#define TLT int
|
||||||
#include "turbolist.h"
|
#include "turbolist.h"
|
||||||
|
|
||||||
#include"arena.h"
|
#include"arena.h/arena.h"
|
||||||
|
|
||||||
// #define PRINT_DBG
|
// #define PRINT_DBG
|
||||||
// #define N 65535
|
// #define N 65535
|
||||||
@ -133,7 +133,7 @@ int main() {
|
|||||||
// malloc-like
|
// malloc-like
|
||||||
[](size_t size) {
|
[](size_t size) {
|
||||||
static thread_local arena a = newarena((ptrdiff_t)1 << 33);
|
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
|
// free-like
|
||||||
[](void *ptr) {},
|
[](void *ptr) {},
|
||||||
@ -174,29 +174,29 @@ int main() {
|
|||||||
arena a9 = newarena((ptrdiff_t)1 << 33);
|
arena a9 = newarena((ptrdiff_t)1 << 33);
|
||||||
*/
|
*/
|
||||||
// steps at first real elem, there should be N from here!
|
// 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) {
|
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 = i;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
value = (int*)alloc(&a1, sizeof(int), sizeof(int), 1);
|
value = (int*)aralloc(&a1, sizeof(int), sizeof(int), 1);
|
||||||
*value = i;
|
*value = i;
|
||||||
value = (int*)alloc(&a2, sizeof(int), sizeof(int), 1);
|
value = (int*)aralloc(&a2, sizeof(int), sizeof(int), 1);
|
||||||
*value = i;
|
*value = i;
|
||||||
value = (int*)alloc(&a3, sizeof(int), sizeof(int), 1);
|
value = (int*)aralloc(&a3, sizeof(int), sizeof(int), 1);
|
||||||
*value = i;
|
*value = i;
|
||||||
value = (int*)alloc(&a4, sizeof(int), sizeof(int), 1);
|
value = (int*)aralloc(&a4, sizeof(int), sizeof(int), 1);
|
||||||
*value = i;
|
*value = i;
|
||||||
value = (int*)alloc(&a5, sizeof(int), sizeof(int), 1);
|
value = (int*)aralloc(&a5, sizeof(int), sizeof(int), 1);
|
||||||
*value = i;
|
*value = i;
|
||||||
value = (int*)alloc(&a6, sizeof(int), sizeof(int), 1);
|
value = (int*)aralloc(&a6, sizeof(int), sizeof(int), 1);
|
||||||
*value = i;
|
*value = i;
|
||||||
value = (int*)alloc(&a7, sizeof(int), sizeof(int), 1);
|
value = (int*)aralloc(&a7, sizeof(int), sizeof(int), 1);
|
||||||
*value = i;
|
*value = i;
|
||||||
value = (int*)alloc(&a8, sizeof(int), sizeof(int), 1);
|
value = (int*)aralloc(&a8, sizeof(int), sizeof(int), 1);
|
||||||
*value = i;
|
*value = i;
|
||||||
value = (int*)alloc(&a9, sizeof(int), sizeof(int), 1);
|
value = (int*)aralloc(&a9, sizeof(int), sizeof(int), 1);
|
||||||
*value = i;
|
*value = i;
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user