optimized out count/size as calculated field - much faster

This commit is contained in:
masterexplorer 2024-08-27 11:28:46 +02:00
parent 640672be47
commit fb8ca320d0

View File

@ -24,7 +24,6 @@ class TurboList {
uint32_t end; // non-inclusive e . . . . uint32_t end; // non-inclusive e . . . .
uint32_t capacity; uint32_t capacity;
uint32_t count;
TL_NOINLINE void grow_and_insert(int elem) noexcept { TL_NOINLINE void grow_and_insert(int elem) noexcept {
// assert(mid == 0); // assert(mid == 0);
@ -43,8 +42,7 @@ public:
old(nullptr), old(nullptr),
mid(0), mid(0),
end(0), end(0),
capacity(initial_cap), capacity(initial_cap) {
count(0) {
nex = (int *) malloc(this->capacity * sizeof(int)); nex = (int *) malloc(this->capacity * sizeof(int));
} }
@ -59,7 +57,7 @@ public:
} }
inline void insert(int elem) noexcept { inline void insert(int elem) noexcept {
if(TL_LIKELY(count < capacity)) { if(TL_LIKELY(size() < capacity)) {
// INSERT // INSERT
/* Same as this: /* Same as this:
@ -73,7 +71,6 @@ public:
nex[mid] = hasmid ? old[mid] : nex[mid]; nex[mid] = hasmid ? old[mid] : nex[mid];
nex[end++] = elem; nex[end++] = elem;
++count;
} else { } else {
// GROW // GROW
@ -82,7 +79,7 @@ public:
} }
inline uint32_t size() noexcept { inline uint32_t size() noexcept {
return count; return mid + (capacity - end - 1);
} }
}; };