gprs_sndcp_comp_free: Replace ifelse with switch and better handling of error

gprs_sndcp_dcomp_term asserts if compclass is not
SNDCP_XID_DATA_COMPRESSION, so this way by checking in the caller too we
easily now if the unexpected value is in compclass or in algo.dcomp.

Change-Id: I4600e6a137f42f20fdf69637e4a9048b265c1748
diff --git a/src/gprs/gprs_sndcp_comp.c b/src/gprs/gprs_sndcp_comp.c
index 0b4c67c..c71cc89 100644
--- a/src/gprs/gprs_sndcp_comp.c
+++ b/src/gprs/gprs_sndcp_comp.c
@@ -160,16 +160,23 @@
 
 	llist_for_each_entry(comp_entity, comp_entities, list) {
 		/* Free compression entity */
-		if (comp_entity->compclass == SNDCP_XID_PROTOCOL_COMPRESSION) {
+		switch (comp_entity->compclass) {
+		case SNDCP_XID_PROTOCOL_COMPRESSION:
 			LOGP(DSNDCP, LOGL_INFO,
 			     "Deleting header compression entity %d ...\n",
 			     comp_entity->entity);
 			gprs_sndcp_pcomp_term(comp_entity);
-		} else {
+			break;
+		case SNDCP_XID_DATA_COMPRESSION:
 			LOGP(DSNDCP, LOGL_INFO,
 			     "Deleting data compression entity %d ...\n",
 			     comp_entity->entity);
 			gprs_sndcp_dcomp_term(comp_entity);
+			break;
+		default:
+			LOGP(DSNDCP, LOGL_INFO,
+			     "Invalid compression class %d!\n", comp_entity->compclass);
+			OSMO_ASSERT(false);
 		}
 	}