105 const std::vector<Argument<Base> >&
args =
newArray.getArguments();
106 for (
size_t i = 0;
i <
args.size();
i++) {
108 if (
argOp !=
nullptr &&
argOp->getOperationType() == CGOpCode::ArrayElement) {
110 CPPADCG_ASSERT_UNKNOWN(_varId[
otherArray] > 0);
112 size_t index =
argOp->getInfo()[0];
120 std::map<size_t, size_t>::reverse_iterator
it;
121 std::map<size_t, size_t>::reverse_iterator
itBestFit = _freeArrayStartSpace.rend();
123 for (
it = _freeArrayStartSpace.rbegin();
it != _freeArrayStartSpace.rend(); ++
it) {
125 size_t end =
it->second;
137 if (
itBestFit == _freeArrayStartSpace.rend()) {
144 if (isSameArrayElement(_tmpArrayValues[
start +
i],
args[
i])) {
160 size_t bestStart = (std::numeric_limits<size_t>::max)();
161 if (
itBestFit != _freeArrayStartSpace.rend()) {
171 _freeArrayEndSpace.erase(
bestEnd);
184 std::map<size_t, size_t>::iterator
itEnd;
185 itEnd = _freeArrayEndSpace.find(_idArrayCount - 1 - 1);
186 if (
itEnd != _freeArrayEndSpace.end()) {
194 _freeArrayEndSpace.erase(
itEnd);
202 if (
bestStart == (std::numeric_limits<size_t>::max)()) {
204 size_t id = _idArrayCount;
214 CPPADCG_ASSERT_UNKNOWN(_freeArrayStartSpace.size() == _freeArrayEndSpace.size());