summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/libfec.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/libfec.c b/lib/libfec.c
index 924701f..b19ed6e 100644
--- a/lib/libfec.c
+++ b/lib/libfec.c
@@ -629,12 +629,13 @@ struct fec_parms {
int k, n ; /* parameters of the code */
gf *enc_matrix ;
} ;
+#define COMP_FEC_MAGIC(fec) \
+ (((FEC_MAGIC ^ (fec)->k) ^ (fec)->n) ^ (unsigned long)((fec)->enc_matrix))
void
fec_free(struct fec_parms *p)
{
- if (p==NULL ||
- p->magic != ( ( (FEC_MAGIC ^ p->k) ^ p->n) ^ (int)(p->enc_matrix)) ) {
+ if (p==NULL || p->magic != COMP_FEC_MAGIC(p)) {
fprintf(stderr, "bad parameters to fec_free\n");
return ;
}
@@ -666,7 +667,7 @@ fec_new(int k, int n)
retval->k = k ;
retval->n = n ;
retval->enc_matrix = NEW_GF_MATRIX(n, k);
- retval->magic = ( ( FEC_MAGIC ^ k) ^ n) ^ (int)(retval->enc_matrix) ;
+ retval->magic = COMP_FEC_MAGIC(retval);
tmp_m = NEW_GF_MATRIX(n, k);
/*
* fill the matrix with powers of field elements, starting from 0.