Blame SOURCES/0006-biosdecode-Avoid-repeating-pointer-arithmetic.patch

5f4333
From 2b5c925d19e1eeecf6a24809396fed2774ee0695 Mon Sep 17 00:00:00 2001
5f4333
From: Jean Delvare <jdelvare@suse.de>
5f4333
Date: Tue, 25 Jul 2017 11:21:30 +0200
5f4333
Subject: [PATCH 06/10] biosdecode: Avoid repeating pointer arithmetic
5f4333
5f4333
This makes the code both more efficient and more readable.
5f4333
5f4333
---
5f4333
 biosdecode.c | 18 +++++++++---------
5f4333
 1 file changed, 9 insertions(+), 9 deletions(-)
5f4333
5f4333
diff --git a/biosdecode.c b/biosdecode.c
5f4333
index b37e510..99a27fe 100644
5f4333
--- a/biosdecode.c
5f4333
+++ b/biosdecode.c
5f4333
@@ -375,7 +375,7 @@ static void pir_link_bitmap(char letter, const u8 *p)
5f4333
 
5f4333
 static int pir_decode(const u8 *p, size_t len)
5f4333
 {
5f4333
-	int i;
5f4333
+	int i, n;
5f4333
 
5f4333
 	if (len < 32 || !checksum(p, WORD(p + 6)))
5f4333
 		return 0;
5f4333
@@ -394,18 +394,18 @@ static int pir_decode(const u8 *p, size_t len)
5f4333
 		printf("\tMiniport Data: 0x%08X\n",
5f4333
 			DWORD(p + 16));
5f4333
 
5f4333
-	for (i = 1; i <= (WORD(p + 6) - 32) / 16; i++)
5f4333
+	n = (len - 32) / 16;
5f4333
+	for (i = 1, p += 32; i <= n; i++, p += 16)
5f4333
 	{
5f4333
-		printf("\tDevice: %02x:%02x,",
5f4333
-			p[(i + 1) * 16], p[(i + 1) * 16 + 1] >> 3);
5f4333
-		pir_slot_number(p[(i + 1) * 16 + 14]);
5f4333
+		printf("\tDevice: %02x:%02x,", p[0], p[1] >> 3);
5f4333
+		pir_slot_number(p[14]);
5f4333
 		printf("\n");
5f4333
 		if (opt.pir == PIR_FULL)
5f4333
 		{
5f4333
-			pir_link_bitmap('A', p + (i + 1) * 16 + 2);
5f4333
-			pir_link_bitmap('B', p + (i + 1) * 16 + 5);
5f4333
-			pir_link_bitmap('C', p + (i + 1) * 16 + 8);
5f4333
-			pir_link_bitmap('D', p + (i + 1) * 16 + 11);
5f4333
+			pir_link_bitmap('A', p + 2);
5f4333
+			pir_link_bitmap('B', p + 5);
5f4333
+			pir_link_bitmap('C', p + 8);
5f4333
+			pir_link_bitmap('D', p + 11);
5f4333
 		}
5f4333
 	}
5f4333
 
5f4333
-- 
5f4333
2.9.5
5f4333