- memcpy(dest->data() + index, d.data.data(), d.data.size());
- index += d.data.size();
+ memcpy(dest->data() + offset, d.data.data(), d.data.size());
+ offset += d.data.size();
+ matches2++;
+
+ // Make sure we don't overwrite memory if the array grew in the meanwhile
+ if (matches2 == matches)
+ break;