2011-03-30 06:09:04

by Mike Frysinger

[permalink] [raw]
Subject: [PATCH] proc: constify status array

No need for this local array to be writable, so mark it const.

Signed-off-by: Mike Frysinger <[email protected]>
---
fs/proc/array.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/proc/array.c b/fs/proc/array.c
index 5e4f776..9b45ee8 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -131,7 +131,7 @@ static inline void task_name(struct seq_file *m, struct task_struct *p)
* you can test for combinations of others with
* simple bit tests.
*/
-static const char *task_state_array[] = {
+static const char * const task_state_array[] = {
"R (running)", /* 0 */
"S (sleeping)", /* 1 */
"D (disk sleep)", /* 2 */
@@ -147,7 +147,7 @@ static const char *task_state_array[] = {
static inline const char *get_task_state(struct task_struct *tsk)
{
unsigned int state = (tsk->state & TASK_REPORT) | tsk->exit_state;
- const char **p = &task_state_array[0];
+ const char * const *p = &task_state_array[0];

BUILD_BUG_ON(1 + ilog2(TASK_STATE_MAX) != ARRAY_SIZE(task_state_array));

--
1.7.4.1


2011-03-30 09:56:20

by Alexey Dobriyan

[permalink] [raw]
Subject: Re: [PATCH] proc: constify status array

On Wed, Mar 30, 2011 at 9:09 AM, Mike Frysinger <[email protected]> wrote:
> -static const char *task_state_array[] = {
> +static const char * const task_state_array[] = {

Why this is needed for task_state_array, but not for, say, tgid_base_stuff?

00000000000000e0 d task_state_array
0000000000000a50 r tgid_base_stuff

This double const is ugly.

2011-03-30 10:03:33

by Mike Frysinger

[permalink] [raw]
Subject: Re: [PATCH] proc: constify status array

On Wed, Mar 30, 2011 at 05:56, Alexey Dobriyan wrote:
> On Wed, Mar 30, 2011 at 9:09 AM, Mike Frysinger wrote:
>> -static const char *task_state_array[] = {
>> +static const char * const task_state_array[] = {
>
> Why this is needed for task_state_array, but not for, say, tgid_base_stuff?

tgid_base_stuff is already declared const. which your nm output clearly shows.

> This double const is ugly.

quite the opposite. not declaring const arrays const is ugly.
-mike