if (as == Status::OK()) {
char* bscratch = new char[n];
Slice bslice;
+#ifndef NDEBUG
size_t off = 0;
+#endif
size_t left = aslice.size();
while (left) {
Status bs = b_->Read(left, &bslice, bscratch);
+#ifndef NDEBUG
assert(as == bs);
assert(memcmp(bscratch, scratch + off, bslice.size()) == 0);
off += bslice.size();
+#endif
left -= bslice.size();
}
delete[] bscratch;
assert(as == bs);
return as;
}
+ Status Append(const Slice& data,
+ const DataVerificationInfo& /* verification_info */) override {
+ return Append(data);
+ }
Status PositionedAppend(const Slice& data, uint64_t offset) override {
Status as = a_->PositionedAppend(data, offset);
Status bs = b_->PositionedAppend(data, offset);
assert(as == bs);
return as;
}
+ Status PositionedAppend(
+ const Slice& data, uint64_t offset,
+ const DataVerificationInfo& /* verification_info */) override {
+ return PositionedAppend(data, offset);
+ }
Status Truncate(uint64_t size) override {
Status as = a_->Truncate(size);
Status bs = b_->Truncate(size);