From e7403e121eda6301245cdd174e66d18081f15d29 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 16 May 2018 16:41:44 -0400 Subject: [PATCH] EXI_DeviceEthernet: In-class initialize members Gets rid of a second pair of ifdefs in the constructor. This also makes sure the fd on Unix/BSD platforms is uniformly initialized. Previously fd would be in an inconsistent state on FreeBSD or OpenBSD due to the BSD OS checks not being present in the #elif within the constructor. --- .../Core/Core/HW/EXI/EXI_DeviceEthernet.cpp | 11 ----- Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h | 44 +++++++------------ 2 files changed, 15 insertions(+), 40 deletions(-) diff --git a/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp b/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp index cc99b7d925..42d1bddd8f 100644 --- a/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp +++ b/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp @@ -26,9 +26,7 @@ CEXIETHERNET::CEXIETHERNET() { tx_fifo = std::make_unique(BBA_TXFIFO_SIZE); mBbaMem = std::make_unique(BBA_MEM_SIZE); - mRecvBuffer = std::make_unique(BBA_RECV_SIZE); - mRecvBufferLength = 0; MXHardReset(); @@ -48,15 +46,6 @@ CEXIETHERNET::CEXIETHERNET() // HACK: .. fully established 100BASE-T link mBbaMem[BBA_NWAYS] = NWAYS_LS100 | NWAYS_LPNWAY | NWAYS_100TXF | NWAYS_ANCLPT; - -#if defined(_WIN32) - mHAdapter = INVALID_HANDLE_VALUE; - memset(&mReadOverlapped, 0, sizeof(mReadOverlapped)); - memset(&mWriteOverlapped, 0, sizeof(mWriteOverlapped)); - mWritePending = false; -#elif defined(__linux__) || defined(__APPLE__) - fd = -1; -#endif } CEXIETHERNET::~CEXIETHERNET() diff --git a/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h b/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h index d6236808df..38a27bd7e0 100644 --- a/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h +++ b/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h @@ -227,7 +227,7 @@ private: u16 address; bool valid; - } transfer; + } transfer = {}; enum { @@ -251,28 +251,14 @@ private: TRANSFER = 0x80 }; - u8 revision_id; - u8 interrupt_mask; - u8 interrupt; - u16 device_id; - u8 acstart; - u32 hash_challenge; - u32 hash_response; - u8 hash_status; - - EXIStatus() - { - device_id = 0xd107; - revision_id = 0; // 0xf0; - acstart = 0x4e; - - interrupt_mask = 0; - interrupt = 0; - hash_challenge = 0; - hash_response = 0; - hash_status = 0; - } - + u8 revision_id = 0; // 0xf0 + u8 interrupt_mask = 0; + u8 interrupt = 0; + u16 device_id = 0xD107; + u8 acstart = 0x4E; + u32 hash_challenge = 0; + u32 hash_response = 0; + u8 hash_status = 0; } exi_status; struct Descriptor @@ -322,16 +308,16 @@ private: void RecvStop(); std::unique_ptr mRecvBuffer; - u32 mRecvBufferLength; + u32 mRecvBufferLength = 0; #if defined(_WIN32) - HANDLE mHAdapter; - OVERLAPPED mReadOverlapped; - OVERLAPPED mWriteOverlapped; + HANDLE mHAdapter = INVALID_HANDLE_VALUE; + OVERLAPPED mReadOverlapped = {}; + OVERLAPPED mWriteOverlapped = {}; std::vector mWriteBuffer; - bool mWritePending; + bool mWritePending = false; #elif defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) - int fd; + int fd = -1; #endif #if defined(WIN32) || defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || \