From 59718f4f8d4c42319e304dcd12e8af3c7f6fc233 Mon Sep 17 00:00:00 2001 From: seleznevae Date: Sat, 12 May 2018 13:09:07 +0300 Subject: [PATCH] [F] Fixed memory buf --- lib/fort.c | 18 ++++++++++++------ src/vector.c | 18 ++++++++++++------ 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/lib/fort.c b/lib/fort.c index a73ec8f..42dedab 100644 --- a/lib/fort.c +++ b/lib/fort.c @@ -2730,15 +2730,21 @@ fort_status_t vector_swap(vector_t *cur_vec, vector_t *mv_vec, size_t pos) } } - memcpy(tmp, - (char *)cur_vec->m_data + deviation, - cur_vec->m_item_size * new_mv_sz); + if (tmp) { + memcpy(tmp, + (char *)cur_vec->m_data + deviation, + cur_vec->m_item_size * new_mv_sz); + } + memcpy((char *)cur_vec->m_data + deviation, mv_vec->m_data, cur_vec->m_item_size * mv_sz); - memcpy(mv_vec->m_data, - tmp, - cur_vec->m_item_size * new_mv_sz); + + if (tmp) { + memcpy(mv_vec->m_data, + tmp, + cur_vec->m_item_size * new_mv_sz); + } cur_vec->m_size = MAX(cur_vec->m_size, min_targ_size); mv_vec->m_size = new_mv_sz; diff --git a/src/vector.c b/src/vector.c index 8887998..c0b132f 100644 --- a/src/vector.c +++ b/src/vector.c @@ -196,15 +196,21 @@ fort_status_t vector_swap(vector_t *cur_vec, vector_t *mv_vec, size_t pos) } } - memcpy(tmp, - (char *)cur_vec->m_data + deviation, - cur_vec->m_item_size * new_mv_sz); + if (tmp) { + memcpy(tmp, + (char *)cur_vec->m_data + deviation, + cur_vec->m_item_size * new_mv_sz); + } + memcpy((char *)cur_vec->m_data + deviation, mv_vec->m_data, cur_vec->m_item_size * mv_sz); - memcpy(mv_vec->m_data, - tmp, - cur_vec->m_item_size * new_mv_sz); + + if (tmp) { + memcpy(mv_vec->m_data, + tmp, + cur_vec->m_item_size * new_mv_sz); + } cur_vec->m_size = MAX(cur_vec->m_size, min_targ_size); mv_vec->m_size = new_mv_sz;