Skip to content

Commit 88a1acf

Browse files
authored
Merge pull request #9 from DataDog/david.goffredo/numeric-type-portability
numeric type portability
2 parents d85ff46 + 2e9841b commit 88a1acf

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

src/datadog/clock.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,15 @@ inline Duration operator-(const TimePoint& after, const TimePoint& before) {
3939
}
4040

4141
inline TimePoint operator-(const TimePoint& origin, Duration offset) {
42-
return {origin.wall - offset, origin.tick - offset};
42+
return {origin.wall -
43+
std::chrono::duration_cast<std::chrono::system_clock::duration>(
44+
offset),
45+
origin.tick - offset};
4346
}
4447

4548
inline TimePoint& operator+=(TimePoint& self, Duration offset) {
46-
self.wall += offset;
49+
self.wall +=
50+
std::chrono::duration_cast<std::chrono::system_clock::duration>(offset);
4751
self.tick += offset;
4852
return self;
4953
}

src/datadog/span_data.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,16 +89,16 @@ Expected<void> msgpack_encode(std::string& destination, const SpanData& span) {
8989
},
9090
"start", [&](auto& destination) {
9191
msgpack::pack_integer(
92-
destination, std::chrono::duration_cast<std::chrono::nanoseconds>(
92+
destination, std::uint64_t(std::chrono::duration_cast<std::chrono::nanoseconds>(
9393
span.start.wall.time_since_epoch())
94-
.count());
94+
.count()));
9595
return Expected<void>{};
9696
},
9797
"duration", [&](auto& destination) {
9898
msgpack::pack_integer(
9999
destination,
100-
std::chrono::duration_cast<std::chrono::nanoseconds>(span.duration)
101-
.count());
100+
std::uint64_t(std::chrono::duration_cast<std::chrono::nanoseconds>(span.duration)
101+
.count()));
102102
return Expected<void>{};
103103
},
104104
"error", [&](auto& destination) {

0 commit comments

Comments
 (0)