From f67af5cbe5cb754c3b64553b9cc03b5c18ca7e79 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Tue, 15 Jun 2021 12:00:48 +0200 Subject: Codechange: make it more obvious SlArray supports SLE_VAR_NULL In the end, the code was already doing the right thing, but a few functions deep, and not really obvious. When validating what objects can handle SLE_VAR_NULL, it is nicer to just have this obvious. --- src/saveload/saveload.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/saveload') diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index c07330cab..d4ca1b308 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -1069,6 +1069,12 @@ void SlArray(void *array, size_t length, VarType conv) if (_sl.need_length == NL_CALCLENGTH) return; } + if (GetVarMemType(conv) == SLE_VAR_NULL) { + assert(_sl.action != SLA_SAVE); // Use SL_NULL if you want to write null-bytes + SlSkipBytes(SlCalcArrayLen(length, conv)); + return; + } + /* NOTICE - handle some buggy stuff, in really old versions everything was saved * as a byte-type. So detect this, and adjust array size accordingly */ if (_sl.action != SLA_SAVE && _sl_version == 0) { -- cgit v1.2.3-54-g00ecf