aboutsummaryrefslogtreecommitdiff
path: root/contrib/epee/include/storages
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/epee/include/storages')
-rw-r--r--contrib/epee/include/storages/portable_storage_from_bin.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/contrib/epee/include/storages/portable_storage_from_bin.h b/contrib/epee/include/storages/portable_storage_from_bin.h
index 9e7b6ec34..6f081dbc7 100644
--- a/contrib/epee/include/storages/portable_storage_from_bin.h
+++ b/contrib/epee/include/storages/portable_storage_from_bin.h
@@ -157,6 +157,18 @@ namespace epee
pod_val = CONVERT_POD(pod_val);
}
+ template<>
+ void throwable_buffer_reader::read<bool>(bool& pod_val)
+ {
+ RECURSION_LIMITATION();
+ static_assert(std::is_pod<bool>::value, "POD type expected");
+ static_assert(sizeof(bool) == sizeof(uint8_t), "We really shouldn't use bool directly in serialization code. Replace it with uint8_t if this assert triggers!");
+ uint8_t t;
+ read(&t, sizeof(t));
+ CHECK_AND_ASSERT_THROW_MES(t <= 1, "Invalid bool value " << t);
+ pod_val = (t != 0);
+ }
+
template<class t_type>
t_type throwable_buffer_reader::read()
{