kdb: kdb_main: refactor code in kdb_md_line
PATCH v2 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")
---
Changes in v2:
- Add new variable j and use it for the for loop.
kernel/debug/kdb/kdb_main.c | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-)
kernel/debug/kdb/kdb_main.c +3 -18
@@ -1493,6 +1493,7 @@ static void kdb_md_line(const char *fmtstr, unsigned long addr,char cbuf[32 ];char *c = cbuf;int i; +int j;unsigned long word;memset (cbuf,'\0' ,sizeof (cbuf));
@@ -1538,25 +1539,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 (j =0 ; j < bytesperword; j++) *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 11 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]>
Quoted 50 lines
---
Changes in v2:
- Add new variable j and use it for the for loop.kernel/debug/kdb/kdb_main.c | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-)kernel/debug/kdb/kdb_main.c +3
-18@@ -1493,6 +1493,7 @@ static void kdb_md_line(const char *fmtstr, unsigned long addr,char cbuf[32 ];char *c = cbuf;int i; +int j;unsigned long word;memset (cbuf,'\0' ,sizeof (cbuf));@@ -1538,25 +1539,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 (j =0 ; j < bytesperword; j++) *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