Commit 0a511014 authored by Yedidya Feldblum's avatar Yedidya Feldblum Committed by Facebook Github Bot

Fix Build: folly/io/RecordIO.cpp under MSVC 2015u3

Summary: [Folly] Fix Build: `folly/io/RecordIO.cpp` under MSVC 2015u3, which inexplicably gives `error C2872: 'detail': ambiguous symbol`.

Reviewed By: Orvid

Differential Revision: D7875032

fbshipit-source-id: 2ff5a60c941e20ef9a05cedb2e7d8224a9e83ed2
parent 367d3cfa
...@@ -59,7 +59,7 @@ inline auto RecordIOReader::seek(off_t pos) const -> Iterator { ...@@ -59,7 +59,7 @@ inline auto RecordIOReader::seek(off_t pos) const -> Iterator {
namespace recordio_helpers { namespace recordio_helpers {
namespace detail { namespace recordio_detail {
FOLLY_PACK_PUSH FOLLY_PACK_PUSH
struct Header { struct Header {
...@@ -82,9 +82,9 @@ FOLLY_PACK_POP ...@@ -82,9 +82,9 @@ FOLLY_PACK_POP
static_assert(offsetof(Header, headerHash) + sizeof(Header::headerHash) == static_assert(offsetof(Header, headerHash) + sizeof(Header::headerHash) ==
sizeof(Header), "invalid header layout"); sizeof(Header), "invalid header layout");
} // namespace detail } // namespace recordio_detail
constexpr size_t headerSize() { return sizeof(detail::Header); } constexpr size_t headerSize() { return sizeof(recordio_detail::Header); }
inline RecordInfo findRecord(ByteRange range, uint32_t fileId) { inline RecordInfo findRecord(ByteRange range, uint32_t fileId) {
return findRecord(range, range, fileId); return findRecord(range, range, fileId);
......
...@@ -106,7 +106,7 @@ void RecordIOReader::Iterator::advanceToValid() { ...@@ -106,7 +106,7 @@ void RecordIOReader::Iterator::advanceToValid() {
namespace recordio_helpers { namespace recordio_helpers {
using namespace detail; using recordio_detail::Header;
namespace { namespace {
...@@ -160,10 +160,9 @@ size_t prependHeader(std::unique_ptr<IOBuf>& buf, uint32_t fileId) { ...@@ -160,10 +160,9 @@ size_t prependHeader(std::unique_ptr<IOBuf>& buf, uint32_t fileId) {
b->appendChain(std::move(buf)); b->appendChain(std::move(buf));
buf = std::move(b); buf = std::move(b);
} }
detail::Header* header = Header* header = reinterpret_cast<Header*>(buf->writableData());
reinterpret_cast<detail::Header*>(buf->writableData());
memset(header, 0, sizeof(Header)); memset(header, 0, sizeof(Header));
header->magic = detail::Header::kMagic; header->magic = Header::kMagic;
header->fileId = fileId; header->fileId = fileId;
header->dataLength = uint32_t(lengthAndHash.first); header->dataLength = uint32_t(lengthAndHash.first);
header->dataHash = lengthAndHash.second; header->dataHash = lengthAndHash.second;
......
...@@ -168,7 +168,7 @@ TEST(RecordIOTest, ExtraMagic) { ...@@ -168,7 +168,7 @@ TEST(RecordIOTest, ExtraMagic) {
EXPECT_EQ(0, lseek(file.fd(), 0, SEEK_SET)); EXPECT_EQ(0, lseek(file.fd(), 0, SEEK_SET));
EXPECT_EQ(sizeof(buf), read(file.fd(), buf, sizeof(buf))); EXPECT_EQ(sizeof(buf), read(file.fd(), buf, sizeof(buf)));
// Append an extra magic // Append an extra magic
const uint32_t magic = recordio_helpers::detail::Header::kMagic; const uint32_t magic = recordio_helpers::recordio_detail::Header::kMagic;
EXPECT_EQ(sizeof(magic), write(file.fd(), &magic, sizeof(magic))); EXPECT_EQ(sizeof(magic), write(file.fd(), &magic, sizeof(magic)));
// and an extra record // and an extra record
EXPECT_EQ(sizeof(buf), write(file.fd(), buf, sizeof(buf))); EXPECT_EQ(sizeof(buf), write(file.fd(), buf, sizeof(buf)));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment