query_size_t TagInfoArray::getNewArraySize()

in src/sizes/tag_info_array.cpp [87:110]


query_size_t TagInfoArray::getNewArraySize(const TagInfoArray &referreeArray, const TagInfoArray &referrerArray) {
    query_size_t i = 0;
    query_size_t j = 0;
    query_size_t size = 0;
    while (i < referreeArray.size && j < referrerArray.size) {
        if (referreeArray[i].index == referrerArray[j].index) {
            i++;
            j++;
        } else if (referreeArray[i].index < referrerArray[j].index) {
            i++;
        } else {
            j++;
        }
        size++;
    }

    if (i < referreeArray.size) {
        size += referreeArray.size - i;
    } else if (j < referrerArray.size) {
        size += referrerArray.size - j;
    }

    return size;
}