summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas.Eversberg2010-10-24 11:59:33 +0200
committerSylvain Munaut2010-10-24 11:59:33 +0200
commitdc0ebdfbdf3b1a381754c6ef4a59b0354eba7705 (patch)
treec6cc91d2b4ced96c2b756345aa508c01395a760c
parentmsgb: Add non-inlined helper functions to ease with language bindings (diff)
downloadlibosmocore-dc0ebdfbdf3b1a381754c6ef4a59b0354eba7705.tar.gz
libosmocore-dc0ebdfbdf3b1a381754c6ef4a59b0354eba7705.tar.xz
libosmocore-dc0ebdfbdf3b1a381754c6ef4a59b0354eba7705.zip
bitvec: Fix decoding of H / L values
it returns if a given bit in the vector is "high" or "low". the bitval that represents "high" depends on the bit position. bitval2mask returns that. so we must check if the bit in the vector equals the returned bitval.
-rw-r--r--src/bitvec.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/bitvec.c b/src/bitvec.c
index 04c465a..95d78a5 100644
--- a/src/bitvec.c
+++ b/src/bitvec.c
@@ -90,7 +90,7 @@ enum bit_value bitvec_get_bit_pos_high(const struct bitvec *bv,
bitval = bitval2mask(H, bitnum);
- if (bv->data[bytenum] & bitval)
+ if ((bv->data[bytenum] & (1 << bitnum)) == bitval)
return H;
return L;