diff --git a/Library/OcFlexArrayLib/FlexArray.c b/Library/OcFlexArrayLib/FlexArray.c index 32b32d8810138dce7419aa540730c7ef78a129de..b32182b83190c331cbd5824424b26903568b68d6 100644 --- a/Library/OcFlexArrayLib/FlexArray.c +++ b/Library/OcFlexArrayLib/FlexArray.c @@ -55,7 +55,6 @@ InternalFlexArrayAddItem ( return NULL; } } else { - ASSERT (FlexArray->Count > 0); ASSERT (FlexArray->AllocatedCount > 0); ASSERT (FlexArray->Count <= FlexArray->AllocatedCount); ++(FlexArray->Count); @@ -194,6 +193,10 @@ OcFlexArrayFreeContainer ( } else { *Items = (*FlexArray)->Items; *Count = (*FlexArray)->Count; + if (*Count == 0 && *Items != NULL) { + FreePool (*Items); + *Items = NULL; + } FreePool (*FlexArray); *FlexArray = NULL; }