From d9bed115018bae46ca6b20a9f8f55ee434dd8cfa Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 19 Sep 2023 16:05:34 +0100 Subject: util/nvmutil: further optimise swap command don't swap pointers at all. handle it in the for loop. 258 sloccount now, versus 261. Signed-off-by: Leah Rowe --- util/nvmutil/nvmutil.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'util/nvmutil') diff --git a/util/nvmutil/nvmutil.c b/util/nvmutil/nvmutil.c index 79b0ceeb..36ef6b01 100644 --- a/util/nvmutil/nvmutil.c +++ b/util/nvmutil/nvmutil.c @@ -279,15 +279,12 @@ void writeGbeFile(void) { errno = 0; - if (cmd == writeGbeFile) { - err_if(!(validChecksum(0) || validChecksum(1))); - xorswap(gbe[0], gbe[1]); - } - for (int p = 0; p < 2; p++) { - if ((!nvmPartModified[p]) && (gbe[0] <= gbe[1])) + err_if((cmd == writeGbeFile) && !(validChecksum(0) || validChecksum(1))); + for (int p = 0, x = (cmd == writeGbeFile) ? 1 : 0; p < 2; p++) { + if ((!nvmPartModified[p]) && (cmd != writeGbeFile)) continue; - handle_endianness(p); - err_if(pwrite(fd, (uint8_t *) gbe[p], nf, p << 12) == -1); + handle_endianness(p^x); + err_if(pwrite(fd, (uint8_t *) gbe[p^x], nf, p << 12) == -1); } err_if(close(fd) == -1); } -- cgit v1.2.1