aboutsummaryrefslogtreecommitdiff
path: root/util/yet_another_bit_vector.cc
AgeCommit message (Collapse)Author
2020-05-07Rename util/logging.h to avoid collisionsJordan Bayles
Currently, the util/logging.h file causes build issues because other external repos have the same file. This patch fixes this bug by renaming our copy of logging.h to osp_logging.h, the same way we renamed DCHECK to OSP_DCHECK. Bug: b/155927492 Change-Id: I75ff546775bed01daeda2a631c06b4776e3829f1 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2186351 Reviewed-by: mark a. foltz <mfoltz@chromium.org>
2019-11-20Move platform/api/internal/logging_macros.h → util/logging.hYuri Wiitala
Follow-up to commit b797903e40723dc41d7eefb438eb0ac0af648c27, which "minified" platform/api/logging.h. This change moves the logging macros to util/, changes the #include's everywhere to point to util/logging.h, and removes the hack at the end of platform/api/logging.h. Bug: openscreen:77 Change-Id: I5e721783e35530f13b1ae0f50128ef67d0522bff Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/1919717 Commit-Queue: Yuri Wiitala <miu@chromium.org> Reviewed-by: mark a. foltz <mfoltz@chromium.org>
2019-10-21Format TODO URLs as TODO(crbug.com/openscreen/000)Takumi Fujimoto
Put crbug URLs in TODOs to make it easier to open the bug pages. Change-Id: Ibc8fce98a795d7e8c714627bf1ecd970a3865563 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/1872176 Reviewed-by: Max Yakimakha <yakimakha@chromium.org> Commit-Queue: Takumi Fujimoto <takumif@chromium.org>
2019-08-06Fix bugs in YetAnotherBitVector, and more unit testing.Yuri Wiitala
While working on code that uses this new utility, a number of bugs were discovered. Surprisingly, I had managed to write the unit tests to test everything *except* sizes/steps that were exact multiples of 64. 😛 This change fixes the bugs and also adds extra testing: The zero size/step cases and sizes/steps that are multiples of 64. Fixes: 1. Calls to the internal MakeBitmask() helper sometimes had negative ranges, which generated bitmasks with no bits set. The intended behavior in some cases was to provide a positive range that would cause all bits to be set. 2. Shifting right by >= 64 steps became a no-op on Intel hardware. The intention was for the integer to be zero'ed out because shifting all of the bits should have filled the integer with cleared bits. 3. The special case of CountBitsSet(begin, end) where begin==end could cause infinite looping. Change-Id: Idcf556c3ec71f4d3e0b108fe2337bff8088c9614 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/1737888 Reviewed-by: Yuri Wiitala <miu@chromium.org> Reviewed-by: Max Yakimakha <yakimakha@chromium.org> Commit-Queue: Yuri Wiitala <miu@chromium.org>
2019-07-16Add YetAnotherBitVector utility class.Yuri Wiitala
This utility will support a number of use cases related to packet scheduling, transmission and tracking for Cast Streaming senders and receivers. (As opposed to maintaining lists of integers.) Change-Id: Iaf9e628517806ae9500a44638db23f8d89a20f3d Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/1700616 Reviewed-by: Yuri Wiitala <miu@chromium.org> Reviewed-by: Max Yakimakha <yakimakha@chromium.org> Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Yuri Wiitala <miu@chromium.org>