# HG changeset patch # User Patric Stout # Date 2021-06-15 10:00:48 # Node ID 3a19d560faf8ca0d957ecc5f428bb4bae23d6985 # Parent 265cb5def15f3f3d0d9e8bed8d10dd001569804a 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. diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -1069,6 +1069,12 @@ void SlArray(void *array, size_t length, 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) {