kdb: kdb_main: refactor code in kdb_md_line
PATCH 1/1 kdb: kdb_main: refactor code in kdb_md_line
Replace the whole switch statement with a for loop. This makes the code much clear and easy to read.
This also addresses the following Coverity warnings:
Addresses-Coverity-ID: 115090 ("Missing break in switch")
Addresses-Coverity-ID: 115091 ("Missing break in switch")
Addresses-Coverity-ID: 114700 ("Missing break in switch")
--- kernel/debug/kdb/kdb_main.c | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-)
kernel/debug/kdb/kdb_main.c +2 -18
@@ -1538,25 +1538,9 @@ static void kdb_md_line(const char *fmtstr, unsigned long addr, wc.word = word;#define printable_char (c) \ ({unsigned char __c = c; isascii(__c) && isprint(__c) ? __c : '.'; }) -switch (bytesperword) { -case 8 : +for (i =0 ; i < bytesperword; i++) *c++ =printable_char (*cp++); - *c++ =printable_char (*cp++); - *c++ =printable_char (*cp++); - *c++ =printable_char (*cp++); - addr +=4 ; -case 4 : - *c++ =printable_char (*cp++); - *c++ =printable_char (*cp++); - addr +=2 ; -case 2 : - *c++ =printable_char (*cp++); - addr++; -case 1 : - *c++ =printable_char (*cp++); - addr++; -break ; - } + addr += bytesperword;#undef printable_char } }
Signature · 1 line
2.7.4
Quoted 20 lines · Gustavo A. R. Silva
Replace the whole switch statement with a for loop. This makes the code much clear and easy to read.
This also addresses the following Coverity warnings:
Addresses-Coverity-ID: 115090 ("Missing break in switch")
Addresses-Coverity-ID: 115091 ("Missing break in switch")
Addresses-Coverity-ID: 114700 ("Missing break in switch")Suggested-by Daniel Thompson <[email protected]>Signed-off-by Gustavo A. R. Silva <[email protected]>--- kernel/debug/kdb/kdb_main.c | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-)kernel/debug/kdb/kdb_main.c +0
-0
kernel/debug/kdb/kdb_main.c static void kdb_md_line(const char *fmtstr, unsigned long addr, · line 1541
Quoted 6 lines
kernel/debug/kdb/kdb_main.c +1
-2@@ -1538,25 +1538,9 @@ static void kdb_md_line(const char *fmtstr, unsigned long addr, wc.word = word;#define printable_char (c) \ ({unsigned char __c = c; isascii(__c) && isprint(__c) ? __c : '.'; }) -switch (bytesperword) { -case 8 : +for (i =0 ; i < bytesperword; i++)
i already a control variable for the outer loop. It is not safe to reuse it here.
Daniel.
Quoted 24 lines
kernel/debug/kdb/kdb_main.c +1
-16*c++ =printable_char (*cp++); - *c++ =printable_char (*cp++); - *c++ =printable_char (*cp++); - *c++ =printable_char (*cp++); - addr +=4 ; -case 4 : - *c++ =printable_char (*cp++); - *c++ =printable_char (*cp++); - addr +=2 ; -case 2 : - *c++ =printable_char (*cp++); - addr++; -case 1 : - *c++ =printable_char (*cp++); - addr++; -break ; - } + addr += bytesperword;#undef printable_char } }Signature · 1 line
2.7.4
Quoted 6 lines · Daniel Thompson
Quoted 6 lines
kernel/debug/kdb/kdb_main.c +0
-0@@ -1538,25 +1538,9 @@ static void kdb_md_line(const char *fmtstr, unsigned long addr, wc.word = word;
Quoted 9 lines
kernel/debug/kdb/kdb_main.c static void kdb_md_line(const char *fmtstr, unsigned long addr, · line 1541
Quoted 5 lines
kernel/debug/kdb/kdb_main.c +1
-2#define printable_char (c) \ ({unsigned char __c = c; isascii(__c) && isprint(__c) ? __c : '.'; }) -switch (bytesperword) { -case 8 : +for (i =0 ; i < bytesperword; i++)i already a control variable for the outer loop. It is not safe to reuse it here.
Oh I see. I'll send v2 shortly.
Thanks
--
Gustavo