fix in setup and release of aperiodicTriggerStateList
This commit is contained in:
@@ -1836,22 +1836,25 @@ static void configure_csiconfig(NR_UE_ServingCell_Info_t *sc_info, struct NR_Set
|
|||||||
switch (csi_MeasConfig_sr->present) {
|
switch (csi_MeasConfig_sr->present) {
|
||||||
case NR_SetupRelease_CSI_MeasConfig_PR_NOTHING:
|
case NR_SetupRelease_CSI_MeasConfig_PR_NOTHING:
|
||||||
break;
|
break;
|
||||||
case NR_SetupRelease_CSI_MeasConfig_PR_release :
|
case NR_SetupRelease_CSI_MeasConfig_PR_release:
|
||||||
asn1cFreeStruc(asn_DEF_NR_CSI_MeasConfig, sc_info->csi_MeasConfig);
|
asn1cFreeStruc(asn_DEF_NR_CSI_MeasConfig, sc_info->csi_MeasConfig);
|
||||||
|
asn1cFreeStruc(asn_DEF_NR_CSI_AperiodicTriggerStateList, sc_info->aperiodicTriggerStateList);
|
||||||
break;
|
break;
|
||||||
case NR_SetupRelease_CSI_MeasConfig_PR_setup:
|
case NR_SetupRelease_CSI_MeasConfig_PR_setup: {
|
||||||
|
NR_CSI_MeasConfig_t *csi_MeasConfig = csi_MeasConfig_sr->choice.setup;
|
||||||
|
// separately handling aperiodicTriggerStateList
|
||||||
|
// because it is set directly into sc_info structure
|
||||||
|
if (csi_MeasConfig->aperiodicTriggerStateList)
|
||||||
|
HANDLE_SETUPRELEASE_DIRECT(sc_info->aperiodicTriggerStateList,
|
||||||
|
csi_MeasConfig->aperiodicTriggerStateList,
|
||||||
|
NR_CSI_AperiodicTriggerStateList_t,
|
||||||
|
asn_DEF_NR_CSI_AperiodicTriggerStateList);
|
||||||
if (!sc_info->csi_MeasConfig) { // setup
|
if (!sc_info->csi_MeasConfig) { // setup
|
||||||
UPDATE_IE(sc_info->csi_MeasConfig, csi_MeasConfig_sr->choice.setup, NR_CSI_MeasConfig_t);
|
UPDATE_IE(sc_info->csi_MeasConfig, csi_MeasConfig, NR_CSI_MeasConfig_t);
|
||||||
} else { // modification
|
} else { // modification
|
||||||
NR_CSI_MeasConfig_t *target = sc_info->csi_MeasConfig;
|
NR_CSI_MeasConfig_t *target = sc_info->csi_MeasConfig;
|
||||||
NR_CSI_MeasConfig_t *csi_MeasConfig = csi_MeasConfig_sr->choice.setup;
|
|
||||||
if (csi_MeasConfig->reportTriggerSize)
|
if (csi_MeasConfig->reportTriggerSize)
|
||||||
UPDATE_IE(target->reportTriggerSize, csi_MeasConfig->reportTriggerSize, long);
|
UPDATE_IE(target->reportTriggerSize, csi_MeasConfig->reportTriggerSize, long);
|
||||||
if (csi_MeasConfig->aperiodicTriggerStateList)
|
|
||||||
HANDLE_SETUPRELEASE_DIRECT(sc_info->aperiodicTriggerStateList,
|
|
||||||
csi_MeasConfig->aperiodicTriggerStateList,
|
|
||||||
NR_CSI_AperiodicTriggerStateList_t,
|
|
||||||
asn_DEF_NR_CSI_AperiodicTriggerStateList);
|
|
||||||
if (csi_MeasConfig->semiPersistentOnPUSCH_TriggerStateList)
|
if (csi_MeasConfig->semiPersistentOnPUSCH_TriggerStateList)
|
||||||
HANDLE_SETUPRELEASE_IE(target->semiPersistentOnPUSCH_TriggerStateList,
|
HANDLE_SETUPRELEASE_IE(target->semiPersistentOnPUSCH_TriggerStateList,
|
||||||
csi_MeasConfig->semiPersistentOnPUSCH_TriggerStateList,
|
csi_MeasConfig->semiPersistentOnPUSCH_TriggerStateList,
|
||||||
@@ -1959,6 +1962,7 @@ static void configure_csiconfig(NR_UE_ServingCell_Info_t *sc_info, struct NR_Set
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
AssertFatal(false, "Invalid case\n");
|
AssertFatal(false, "Invalid case\n");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user