From 767073fb9645f5cb0976a14288c03fe71912b569 Mon Sep 17 00:00:00 2001 From: Vasil Dimov Date: Wed, 12 Aug 2020 12:40:25 +0200 Subject: Shrink CAddress from 48 to 40 bytes on x64 `CAddress` inherits `CService` which is 28 bytes (on 64 bit machines). `CAddress` then adds two member variables - one that requires 4 byte alignment (`nTime`) and one that requires 8 byte alignment (`nServices`). Declare the smaller one first so that it fits in bytes 29..32. On 32 bit machines this change has no effect and `CAddress` remains 40 bytes. --- src/protocol.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/protocol.h') diff --git a/src/protocol.h b/src/protocol.h index 1d0adaae6e..e61e4935a3 100644 --- a/src/protocol.h +++ b/src/protocol.h @@ -371,9 +371,10 @@ public: READWRITEAS(CService, obj); } - ServiceFlags nServices{NODE_NONE}; // disk and network only uint32_t nTime{TIME_INIT}; + + ServiceFlags nServices{NODE_NONE}; }; /** getdata message type flags */ -- cgit v1.2.3