From 40cc035b8c2749aaebb06189255242c54e20d715 Mon Sep 17 00:00:00 2001 From: Guido Casati Date: Fri, 8 Nov 2024 12:25:26 +0100 Subject: [PATCH] Extend the scope and refactor copy_f1ap_served_cell_info * allocate memory for pointers only if necessary * removed redundant copies of simple data types --- openair2/F1AP/lib/f1ap_interface_management.c | 10 +++++----- openair2/F1AP/lib/f1ap_interface_management.h | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/openair2/F1AP/lib/f1ap_interface_management.c b/openair2/F1AP/lib/f1ap_interface_management.c index 3a0ef23c6c..4a0800d03e 100644 --- a/openair2/F1AP/lib/f1ap_interface_management.c +++ b/openair2/F1AP/lib/f1ap_interface_management.c @@ -534,16 +534,16 @@ bool decode_f1ap_setup_request(const F1AP_F1AP_PDU_t *pdu, f1ap_setup_req_t *out return true; } -static void copy_f1ap_served_cell_info(f1ap_served_cell_info_t *dest, const f1ap_served_cell_info_t *src) { +void copy_f1ap_served_cell_info(f1ap_served_cell_info_t *dest, const f1ap_served_cell_info_t *src) +{ + // shallow copy *dest = *src; - dest->mode = src->mode; - dest->tdd = src->tdd; - dest->fdd = src->fdd; - dest->plmn = src->plmn; + // tac if (src->tac) { dest->tac = malloc_or_fail(sizeof(*dest->tac)); *dest->tac = *src->tac; } + // measurement timing config if (src->measurement_timing_config_len) { dest->measurement_timing_config = calloc_or_fail(src->measurement_timing_config_len, sizeof(*dest->measurement_timing_config)); memcpy(dest->measurement_timing_config, src->measurement_timing_config, src->measurement_timing_config_len); diff --git a/openair2/F1AP/lib/f1ap_interface_management.h b/openair2/F1AP/lib/f1ap_interface_management.h index bdceee9a61..d5e8c5af03 100644 --- a/openair2/F1AP/lib/f1ap_interface_management.h +++ b/openair2/F1AP/lib/f1ap_interface_management.h @@ -32,6 +32,7 @@ bool decode_f1ap_setup_request(const struct F1AP_F1AP_PDU *pdu, f1ap_setup_req_t f1ap_setup_req_t cp_f1ap_setup_request(const f1ap_setup_req_t *msg); bool eq_f1ap_setup_request(const f1ap_setup_req_t *a, const f1ap_setup_req_t *b); void free_f1ap_setup_request(const f1ap_setup_req_t *msg); +void copy_f1ap_served_cell_info(f1ap_served_cell_info_t *a, const f1ap_served_cell_info_t *b); /* F1 Setup Response */ struct F1AP_F1AP_PDU *encode_f1ap_setup_response(const f1ap_setup_resp_t *msg);