mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-12 19:02:12 +00:00
files: Construct file_impls properly
Constructors of classes inherited from file_impl copy alignment values by hands, but miss the overwrite one, thus on a new file it remains default-initialized. To fix this and not to forget to properly initalize future fields from file_impl, use the impl's copy constructor. tests: unit(dev) Signed-off-by: Pavel Emelyanov <xemul@scylladb.com> Message-Id: <20210325104830.31923-1-xemul@scylladb.com>
This commit is contained in:
committed by
Tomasz Grabiec
parent
ef06a939c4
commit
c6a0e0439e
@@ -31,10 +31,7 @@ class checked_file_impl : public file_impl {
|
||||
public:
|
||||
|
||||
checked_file_impl(const io_error_handler& error_handler, file f)
|
||||
: _error_handler(error_handler), _file(f) {
|
||||
_memory_dma_alignment = f.memory_dma_alignment();
|
||||
_disk_read_dma_alignment = f.disk_read_dma_alignment();
|
||||
_disk_write_dma_alignment = f.disk_write_dma_alignment();
|
||||
: file_impl(*get_file_impl(f)), _error_handler(error_handler), _file(f) {
|
||||
}
|
||||
|
||||
virtual future<size_t> write_dma(uint64_t pos, const void* buffer, size_t len, const io_priority_class& pc) override {
|
||||
|
||||
@@ -574,11 +574,9 @@ class tracking_file_impl : public file_impl {
|
||||
|
||||
public:
|
||||
tracking_file_impl(file file, reader_permit permit)
|
||||
: _tracked_file(std::move(file))
|
||||
: file_impl(*get_file_impl(file))
|
||||
, _tracked_file(std::move(file))
|
||||
, _permit(std::move(permit)) {
|
||||
_memory_dma_alignment = _tracked_file.memory_dma_alignment();
|
||||
_disk_read_dma_alignment = _tracked_file.disk_read_dma_alignment();
|
||||
_disk_write_dma_alignment = _tracked_file.disk_write_dma_alignment();
|
||||
}
|
||||
|
||||
tracking_file_impl(const tracking_file_impl&) = delete;
|
||||
|
||||
@@ -27,10 +27,7 @@
|
||||
namespace sstables {
|
||||
|
||||
integrity_checked_file_impl::integrity_checked_file_impl(sstring fname, file f)
|
||||
: _fname(std::move(fname)), _file(f) {
|
||||
_memory_dma_alignment = f.memory_dma_alignment();
|
||||
_disk_read_dma_alignment = f.disk_read_dma_alignment();
|
||||
_disk_write_dma_alignment = f.disk_write_dma_alignment();
|
||||
: file_impl(*get_file_impl(f)), _fname(std::move(fname)), _file(f) {
|
||||
}
|
||||
|
||||
static bytes data_sample(const int8_t* buf, size_t buf_len, size_t sample_off, size_t sample_len) {
|
||||
|
||||
@@ -53,10 +53,7 @@ public:
|
||||
};
|
||||
|
||||
traced_file_impl::traced_file_impl(file f, tracing::trace_state_ptr trace_state, sstring trace_prefix)
|
||||
: _f(std::move(f)), _trace_state(std::move(trace_state)), _trace_prefix(std::move(trace_prefix)) {
|
||||
_memory_dma_alignment = _f.memory_dma_alignment();
|
||||
_disk_read_dma_alignment = _f.disk_read_dma_alignment();
|
||||
_disk_write_dma_alignment = _f.disk_write_dma_alignment();
|
||||
: file_impl(*get_file_impl(f)), _f(std::move(f)), _trace_state(std::move(trace_state)), _trace_prefix(std::move(trace_prefix)) {
|
||||
}
|
||||
|
||||
future<size_t>
|
||||
|
||||
Reference in New Issue
Block a user