From: Amos Jeffries Date: Wed, 26 Oct 2016 18:17:55 +0000 (+1300) Subject: Cleanup: use C++11 initializers for some DiskThreads classes X-Git-Tag: SQUID_4_0_16~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3e1ef80e028103b6b75c130281c6b8148cf860dc;p=thirdparty%2Fsquid.git Cleanup: use C++11 initializers for some DiskThreads classes Fixes AIOCounts wrong values due to uninitialized struct. Fixes wrong pointer initialization in squidaio_ctrl_t. --- diff --git a/src/DiskIO/DiskThreads/DiskThreads.h b/src/DiskIO/DiskThreads/DiskThreads.h index 9da2752da3..1a05e9478b 100644 --- a/src/DiskIO/DiskThreads/DiskThreads.h +++ b/src/DiskIO/DiskThreads/DiskThreads.h @@ -56,29 +56,29 @@ typedef enum _squidaio_request_type squidaio_request_type; typedef void AIOCB(int fd, void *cbdata, const char *buf, int aio_return, int aio_errno); -class squidaio_result_t { +class squidaio_result_t +{ public: - squidaio_result_t() : aio_return(0), aio_errno(0), result_type(_AIO_OP_NONE), _data(nullptr), data(nullptr) {} - int aio_return; - int aio_errno; - enum _squidaio_request_type result_type; - void *_data; /* Internal housekeeping */ - void *data; /* Available to the caller */ + int aio_return = 0; + int aio_errno = 0; + enum _squidaio_request_type result_type = _AIO_OP_NONE; + void *_data = nullptr; /* Internal housekeeping */ + void *data = nullptr; /* Available to the caller */ }; -class squidaio_ctrl_t { +class squidaio_ctrl_t +{ MEMPROXY_CLASS(squidaio_ctrl_t); public: - squidaio_ctrl_t() : next(nullptr), fd(0), operation(0), done_handler(nullptr), done_handler_data(nullptr), len(0), bufp(0), free_func(nullptr) {} - struct squidaio_ctrl_t *next; - int fd; - int operation; - AIOCB *done_handler; - void *done_handler_data; + squidaio_ctrl_t *next = nullptr; + int fd = 0; + int operation = 0; + AIOCB *done_handler = nullptr; + void *done_handler_data = nullptr; squidaio_result_t result; - int len; - char *bufp; - FREE *free_func; + int len = 0; + char *bufp = nullptr; + FREE *free_func = nullptr; dlink_node node; }; @@ -117,21 +117,23 @@ int aioQueueSize(void); class DiskThreadsIOStrategy; -struct AIOCounts { - uint64_t open_start; - uint64_t open_finish; - uint64_t close_start; - uint64_t close_finish; - uint64_t cancel; - uint64_t write_start; - uint64_t write_finish; - uint64_t read_start; - uint64_t read_finish; - uint64_t stat_start; - uint64_t stat_finish; - uint64_t unlink_start; - uint64_t unlink_finish; - uint64_t check_callback; +class AIOCounts +{ +public: + uint64_t open_start = 0; + uint64_t open_finish = 0; + uint64_t close_start = 0; + uint64_t close_finish = 0; + uint64_t cancel = 0; + uint64_t write_start = 0; + uint64_t write_finish = 0; + uint64_t read_start = 0; + uint64_t read_finish = 0; + uint64_t stat_start = 0; + uint64_t stat_finish = 0; + uint64_t unlink_start = 0; + uint64_t unlink_finish = 0; + uint64_t check_callback = 0; }; extern AIOCounts squidaio_counts; diff --git a/src/DiskIO/DiskThreads/async_io.cc b/src/DiskIO/DiskThreads/async_io.cc index 5bfd1c960b..34f2127476 100644 --- a/src/DiskIO/DiskThreads/async_io.cc +++ b/src/DiskIO/DiskThreads/async_io.cc @@ -15,12 +15,6 @@ #include "Generic.h" #include "Store.h" -/* - * squidaio_ctrl_t uses explicit alloc()/freeOne() allocators - * XXX: convert to MEMPROXY_CLASS() API - */ -#include "mem/Pool.h" - AIOCounts squidaio_counts; typedef struct squidaio_unlinkq_t {