Fix compilation of CScriptSpecialFunction

This commit is contained in:
Henrique Gemignani Passos Lima 2022-11-22 00:54:14 +02:00
parent 1f30508cd3
commit 286180ee0c
No known key found for this signature in database
GPG Key ID: E224F951761145F8
3 changed files with 15 additions and 5 deletions

View File

@ -120,6 +120,11 @@ struct const_counting_iterator {
int count;
const_counting_iterator(const T* ptr, int count) : ptr(ptr), count(count) {}
const_counting_iterator& operator++() {
++this->count;
return *this;
}
};
template < typename It >

View File

@ -137,8 +137,11 @@ void vector< T, Alloc >::reserve(int newSize) {
template < typename T, typename Alloc >
typename vector< T, Alloc >::iterator vector< T, Alloc >::insert(iterator it, const T& value) {
typename iterator::difference_type diff = it - begin(); // distance(begin(), it);
const_counting_iterator< T > in(&value, 0);
insert_into(it, 1, in);
// // TODO: implement
// const_counting_iterator< T > in(&value, 0);
// insert_into(it, 1, in);
return begin() + diff;
}
@ -165,15 +168,16 @@ typename vector< T, Alloc >::iterator vector< T, Alloc >::insert_into(iterator a
}
uninitialized_copy_n(in, n, begin() + diffFromAt);
x4_count += n;
} else {
int newCapacity = x8_capacity != 0 ? x8_capacity * 2 : 4;
for (; newCapacity < newCount; newCapacity *= 2);
for (; newCapacity < newCount; newCapacity *= 2)
;
T* newData;
x0_allocator.allocate(newData, newCapacity);
int diffFromAt = at - begin();
uninitialized_copy_n(begin(), diffFromAt, newData);
uninitialized_copy_n(in, n, newData + diffFromAt);

View File

@ -30,6 +30,7 @@
#include "math.h"
#include "rstl/math.hpp"
#include "rstl/iterator.hpp"
namespace rstl {
static int string_find(const string& haystack, const string& needle, int) {