Re: [patch 2/2] kernel/power/disk.c string fix and if-less iterator
From: Pavel Machek
Date: Mon Jun 20 2005 - 18:00:24 EST
Hi!
> The attached patch:
>
> o Fixes kernel/power/disk.c string declared as 'char *p = "...";' to be
> declared as 'char p[] = "...";', as pointed by Jeff Garzik.
? Why was char *p ... wrong? Because you could not do sizeof() later?
> o Replaces:
> i++:
> if (i > 3) i = 0;
>
> By:
> i = (i + 1) % (sizeof(p) - 1);
>
> Which is if-less, and the adjust value is evaluated by the compiler in
> compile-time in case the string related to this loop is modified.
Well, why not...
Pavel
> Index: quilt/kernel/power/disk.c
> ===================================================================
> --- quilt.orig/kernel/power/disk.c
> +++ quilt/kernel/power/disk.c
> @@ -91,15 +91,13 @@ static void free_some_memory(void)
> unsigned int i = 0;
> unsigned int tmp;
> unsigned long pages = 0;
> - char *p = "-\\|/";
> + char p[] = "-\\|/";
>
> printk("Freeing memory... ");
> while ((tmp = shrink_all_memory(10000))) {
> pages += tmp;
> printk("\b%c", p[i]);
> - i++;
> - if (i > 3)
> - i = 0;
> + i = (i + 1) % (sizeof(p) - 1);
> }
> printk("\bdone (%li pages freed)\n", pages);
> }
--
teflon -- maybe it is a trademark, but it should not be.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/