Extend the scope and refactor copy_f1ap_served_cell_info
* allocate memory for pointers only if necessary * removed redundant copies of simple data types
This commit is contained in:
@@ -534,16 +534,16 @@ bool decode_f1ap_setup_request(const F1AP_F1AP_PDU_t *pdu, f1ap_setup_req_t *out
|
|||||||
return true;
|
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 = *src;
|
||||||
dest->mode = src->mode;
|
// tac
|
||||||
dest->tdd = src->tdd;
|
|
||||||
dest->fdd = src->fdd;
|
|
||||||
dest->plmn = src->plmn;
|
|
||||||
if (src->tac) {
|
if (src->tac) {
|
||||||
dest->tac = malloc_or_fail(sizeof(*dest->tac));
|
dest->tac = malloc_or_fail(sizeof(*dest->tac));
|
||||||
*dest->tac = *src->tac;
|
*dest->tac = *src->tac;
|
||||||
}
|
}
|
||||||
|
// measurement timing config
|
||||||
if (src->measurement_timing_config_len) {
|
if (src->measurement_timing_config_len) {
|
||||||
dest->measurement_timing_config = calloc_or_fail(src->measurement_timing_config_len, sizeof(*dest->measurement_timing_config));
|
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);
|
memcpy(dest->measurement_timing_config, src->measurement_timing_config, src->measurement_timing_config_len);
|
||||||
|
|||||||
@@ -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);
|
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);
|
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 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 */
|
/* F1 Setup Response */
|
||||||
struct F1AP_F1AP_PDU *encode_f1ap_setup_response(const f1ap_setup_resp_t *msg);
|
struct F1AP_F1AP_PDU *encode_f1ap_setup_response(const f1ap_setup_resp_t *msg);
|
||||||
|
|||||||
Reference in New Issue
Block a user