diff options
author | RSDuck <rsduck@users.noreply.github.com> | 2020-12-30 23:37:46 +0100 |
---|---|---|
committer | RSDuck <rsduck@users.noreply.github.com> | 2020-12-30 23:37:46 +0100 |
commit | fa4363ede69bcef919310863ba262c9691c179e6 (patch) | |
tree | 89105d004d6c19432d5d75a88dfca884e3ef323b /src/frontend/qt_sdl/LAN_Socket.cpp | |
parent | 162a0f4fb6dafa51939b9f3dcfb030ac7c7bb73f (diff) |
make FIFO size static whene possible
Diffstat (limited to 'src/frontend/qt_sdl/LAN_Socket.cpp')
-rw-r--r-- | src/frontend/qt_sdl/LAN_Socket.cpp | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/src/frontend/qt_sdl/LAN_Socket.cpp b/src/frontend/qt_sdl/LAN_Socket.cpp index 458c931..c147e69 100644 --- a/src/frontend/qt_sdl/LAN_Socket.cpp +++ b/src/frontend/qt_sdl/LAN_Socket.cpp @@ -48,7 +48,7 @@ const u32 kClientIP = kSubnet | 0x10; const u8 kServerMAC[6] = {0x00, 0xAB, 0x33, 0x28, 0x99, 0x44}; -FIFO<u32>* RXBuffer = nullptr; +FIFO<u32, (0x8000 >> 2)> RXBuffer; u32 IPv4ID; @@ -86,16 +86,16 @@ void RXEnqueue(const void* buf, int len) int alignedlen = (len + 3) & ~3; int totallen = alignedlen + 4; - if (!RXBuffer->CanFit(totallen >> 2)) + if (!RXBuffer.CanFit(totallen >> 2)) { printf("slirp: !! NOT ENOUGH SPACE IN RX BUFFER\n"); return; } u32 header = (alignedlen & 0xFFFF) | (len << 16); - RXBuffer->Write(header); + RXBuffer.Write(header); for (int i = 0; i < alignedlen; i += 4) - RXBuffer->Write(((u32*)buf)[i>>2]); + RXBuffer.Write(((u32*)buf)[i>>2]); } ssize_t SlirpCbSendPacket(const void* buf, size_t len, void* opaque) @@ -202,8 +202,6 @@ bool Init() //FDListSize = 0; //memset(FDList, 0, sizeof(FDList)); - RXBuffer = new FIFO<u32>(0x8000 >> 2); - SlirpConfig cfg; memset(&cfg, 0, sizeof(cfg)); cfg.version = 1; @@ -228,12 +226,6 @@ void DeInit() slirp_cleanup(Ctx); Ctx = nullptr; } - - if (RXBuffer) - { - delete RXBuffer; - RXBuffer = nullptr; - } } @@ -530,13 +522,13 @@ int RecvPacket(u8* data) slirp_pollfds_poll(Ctx, res<0, SlirpCbGetREvents, nullptr); } - if (!RXBuffer->IsEmpty()) + if (!RXBuffer.IsEmpty()) { - u32 header = RXBuffer->Read(); + u32 header = RXBuffer.Read(); u32 len = header & 0xFFFF; for (int i = 0; i < len; i += 4) - ((u32*)data)[i>>2] = RXBuffer->Read(); + ((u32*)data)[i>>2] = RXBuffer.Read(); ret = header >> 16; } |