Skip to content

Commit f27f5c4

Browse files
committed
Fix build with Boost 1.86.0.
1 parent 4a027a8 commit f27f5c4

File tree

5 files changed

+19
-30
lines changed

5 files changed

+19
-30
lines changed

hazelcast/include/hazelcast/client/protocol/ClientMessage.h

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@
5656
namespace hazelcast {
5757
namespace util {
5858
class ByteBuffer;
59+
60+
template<class T>
61+
struct is_trivial_or_uuid : std::is_trivial<T> {};
62+
template<>
63+
struct is_trivial_or_uuid<boost::uuids::uuid> : std::true_type {};
5964
}
6065

6166
namespace cp {
@@ -594,7 +599,7 @@ class HAZELCAST_API ClientMessage
594599
std::is_same<std::pair<typename T::value_type::first_type,
595600
typename T::value_type::second_type>,
596601
typename T::value_type>::value &&
597-
std::is_trivial<typename T::value_type::first_type>::value &&
602+
hazelcast::util::is_trivial_or_uuid<typename T::value_type::first_type>::value &&
598603
std::is_trivial<typename T::value_type::second_type>::value,
599604
T>::type
600605
get()
@@ -625,7 +630,7 @@ class HAZELCAST_API ClientMessage
625630
std::is_same<std::pair<typename T::value_type::first_type,
626631
typename T::value_type::second_type>,
627632
typename T::value_type>::value &&
628-
std::is_trivial<typename T::value_type::first_type>::value &&
633+
hazelcast::util::is_trivial_or_uuid<typename T::value_type::first_type>::value &&
629634
!std::is_trivial<typename T::value_type::second_type>::value,
630635
T>::type
631636
get()
@@ -1246,12 +1251,11 @@ class HAZELCAST_API ClientMessage
12461251
set(nil);
12471252
if (!nil) {
12481253
boost::endian::endian_reverse_inplace<int64_t>(
1249-
*reinterpret_cast<int64_t*>(uuid.data));
1254+
*reinterpret_cast<int64_t*>(&uuid.data[0]));
12501255
boost::endian::endian_reverse_inplace<int64_t>(
1251-
*reinterpret_cast<int64_t*>(uuid.data +
1252-
util::Bits::LONG_SIZE_IN_BYTES));
1256+
*reinterpret_cast<int64_t*>(&uuid.data[util::Bits::LONG_SIZE_IN_BYTES]));
12531257
std::memcpy(wr_ptr(sizeof(boost::uuids::uuid)),
1254-
uuid.data,
1258+
&uuid.data[0],
12551259
sizeof(boost::uuids::uuid));
12561260
} else {
12571261
wr_ptr(sizeof(boost::uuids::uuid));
@@ -1525,13 +1529,13 @@ class HAZELCAST_API ClientMessage
15251529
boost::uuids::uuid get_uuid()
15261530
{
15271531
boost::uuids::uuid u;
1528-
memcpy(&u.data,
1532+
memcpy(&u.data[0],
15291533
rd_ptr(sizeof(boost::uuids::uuid)),
15301534
sizeof(boost::uuids::uuid));
15311535
boost::endian::endian_reverse_inplace<int64_t>(
1532-
*reinterpret_cast<int64_t*>(u.data));
1536+
*reinterpret_cast<int64_t*>(&u.data[0]));
15331537
boost::endian::endian_reverse_inplace<int64_t>(
1534-
*reinterpret_cast<int64_t*>(u.data + util::Bits::LONG_SIZE_IN_BYTES));
1538+
*reinterpret_cast<int64_t*>(&u.data[util::Bits::LONG_SIZE_IN_BYTES]));
15351539
return u;
15361540
}
15371541

hazelcast/include/hazelcast/client/serialization/pimpl/data_input.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,11 +182,11 @@ class data_input
182182
{
183183
check_available(util::Bits::UUID_SIZE_IN_BYTES);
184184
boost::uuids::uuid u;
185-
std::memcpy(&u.data, &buffer_[pos_], util::Bits::UUID_SIZE_IN_BYTES);
185+
std::memcpy(&u.data[0], &buffer_[pos_], util::Bits::UUID_SIZE_IN_BYTES);
186186
pos_ += util::Bits::UUID_SIZE_IN_BYTES;
187187
if (byte_order_ == boost::endian::order::little) {
188188
boost::endian::endian_reverse_inplace<int64_t>(
189-
*reinterpret_cast<int64_t*>(u.data));
189+
*reinterpret_cast<int64_t*>(&u.data[0]));
190190
boost::endian::endian_reverse_inplace<int64_t>(
191191
*reinterpret_cast<int64_t*>(
192192
&u.data[util::Bits::LONG_SIZE_IN_BYTES]));

hazelcast/include/hazelcast/client/spi/impl/ClientInvocation.h

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -210,22 +210,7 @@ class HAZELCAST_API ClientInvocation
210210
const std::string& name,
211211
int partition = UNASSIGNED_PARTITION,
212212
const std::shared_ptr<connection::Connection>& conn = nullptr,
213-
boost::uuids::uuid uuid = { 0x0,
214-
0x0,
215-
0x0,
216-
0x0,
217-
0x0,
218-
0x0,
219-
0x0,
220-
0x0,
221-
0x0,
222-
0x0,
223-
0x0,
224-
0x0,
225-
0x0,
226-
0x0,
227-
0x0,
228-
0x0 });
213+
boost::uuids::uuid uuid = {});
229214

230215
void invoke_on_selection();
231216

hazelcast/src/hazelcast/client/protocol.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ operator<<(std::ostream& os, const ClientMessage& msg)
376376
void
377377
ClientMessage::set(unsigned char* /* memory */, boost::uuids::uuid uuid)
378378
{
379-
std::memcpy(wr_ptr(uuid.size()), uuid.data, uuid.size());
379+
std::memcpy(wr_ptr(uuid.size()), &uuid.data[0], uuid.size());
380380
}
381381

382382
void

hazelcast/src/hazelcast/client/serialization.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -731,12 +731,12 @@ data_output::write(boost::uuids::uuid v)
731731
}
732732
if (byte_order_ == boost::endian::order::little) {
733733
boost::endian::endian_reverse_inplace<int64_t>(
734-
*reinterpret_cast<int64_t*>(v.data));
734+
*reinterpret_cast<int64_t*>(&v.data[0]));
735735
boost::endian::endian_reverse_inplace<int64_t>(
736736
*reinterpret_cast<int64_t*>(&v.data[util::Bits::LONG_SIZE_IN_BYTES]));
737737
}
738738
output_stream_.insert(
739-
output_stream_.end(), v.data, v.data + util::Bits::UUID_SIZE_IN_BYTES);
739+
output_stream_.end(), &v.data[0], &v.data[util::Bits::LONG_SIZE_IN_BYTES]);
740740
}
741741

742742
template<>

0 commit comments

Comments
 (0)