release v5.2.1

BufferAdapter statically assert on underlying type size

bugfix in StdBitset
This commit is contained in:
Mindaugas Vinkelis
2020-11-10 08:28:41 +02:00
parent 8a00183c80
commit db884a0656
7 changed files with 22 additions and 7 deletions

View File

@@ -1,3 +1,11 @@
# [5.2.1](https://github.com/fraillt/bitsery/compare/v5.2.0...v5.2.1) (2020-11-14)
### Improvements
* `Input/OutputBufferAdapter` now statically asserts that underlying type is 1byte in size.
### Bug fixes
* fixed serialization in `StdBitset` when it's size is less then `unsigned long long`.
# [5.2.0](https://github.com/fraillt/bitsery/compare/v5.1.0...v5.2.0) (2020-11-09)
### Features

View File

@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.1)
project(bitsery
LANGUAGES CXX
VERSION 5.2.0)
VERSION 5.2.1)
#======== build options ===================================
option(BITSERY_BUILD_EXAMPLES "Build examples" OFF)

View File

@@ -6,7 +6,7 @@ However, to make sure the process of accepting patches goes smoothly, you should
you contribute:
1. Fork the repository.
2. Create new branch based on the *master* branch (`git checkout -b your_branch master`). If your contribution is a bug fix, you should name your branch `bugfix/xxx`; for a feature, it should be `feature/xxx`. Otherwise, just use your good judgment. Consistent naming of branches is appreciated since it makes the output of `git branch` easier to understand with a single glance.
2. Create new branch based on the *develop* branch (`git checkout -b your_branch develop`). If your contribution is a bug fix, you should name your branch `bugfix/xxx`; for a feature, it should be `feature/xxx`. Otherwise, just use your good judgment. Consistent naming of branches is appreciated since it makes the output of `git branch` easier to understand with a single glance.
3. Do your modifications on that branch. Except for special cases, your contribution should include proper unit tests and documentation.
4. Make sure your modifications did not break anything by building, running tests:
```shell
@@ -23,7 +23,7 @@ you contribute:
./show_coverage.sh build
```
5. Commit your changes, and push to your fork (`git push origin your_branch`). Commit message should be one line short description. When applicable, please squash adjacent *wip* commits into a single *logical* commit.
6. Open a pull request against Bitsery *master* branch. Currently ongoing development is on *master*. At some point an integration branch will be set-up, and pull-requests should target that, but for now its all against master. You may see feature branches come and go, too.
6. Open a pull request against Bitsery *develop* branch.
If you're working with visual studio, there is how to build and run all tests from command line

View File

@@ -39,6 +39,7 @@ namespace bitsery {
"Please define BufferAdapterTraits or include from <bitsery/traits/...>");
static_assert(traits::ContainerTraits<typename std::remove_const<Buffer>::type>::isContiguous,
"BufferAdapter only works with contiguous containers");
static_assert(sizeof(TValue) == 1, "BufferAdapter underlying type must be 1byte.");
InputBufferAdapter(TIterator beginIt, size_t size)
: _beginIt{beginIt},
@@ -196,6 +197,7 @@ namespace bitsery {
"Please define BufferAdapterTraits or include from <bitsery/traits/...>");
static_assert(traits::ContainerTraits<Buffer>::isContiguous,
"BufferAdapter only works with contiguous containers");
static_assert(sizeof(TValue) == 1, "BufferAdapter underlying type must be 1byte.");
OutputBufferAdapter(Buffer &buffer)
: _buffer{std::addressof(buffer)},

View File

@@ -26,7 +26,7 @@
#define BITSERY_MAJOR_VERSION 5
#define BITSERY_MINOR_VERSION 2
#define BITSERY_PATCH_VERSION 0
#define BITSERY_PATCH_VERSION 1
#define BITSERY_QUOTE_MACRO(name) #name
#define BITSERY_BUILD_VERSION_STR(major,minor, patch) \

View File

@@ -55,7 +55,7 @@ namespace bitsery {
auto data = obj.to_ullong();
for(size_t i = 0u; i < BYTES; ++i) {
ser.value1b(static_cast<uint8_t>(data & 0xFF));
data >>= 1;
data >>= 8;
}
}
if (LEFTOVER > 0) {

View File

@@ -34,10 +34,13 @@ using testing::Eq;
TEST(SerializeExtensionStdBitset, BitsetSmallerThanULongLong) {
SerializationContext ctx;
std::bitset<9> data;
std::bitset<31> data;
data[2] = true;
data[8] = true;
std::bitset<9> res;
data[15] = true;
data[25] = true;
data[30] = true;
std::bitset<31> res;
ctx.createSerializer().ext(data, StdBitset{});
ctx.createDeserializer().ext(res, StdBitset{});
@@ -62,6 +65,8 @@ TEST(SerializeExtensionStdBitset, BitsetLargerThanULongLong) {
std::bitset<200> data;
data[1] = true;
data[31] = true;
data[63] = true;
data[100] = true;
data[191] = true;
std::bitset<200> res;