Re: [RFC] cleanup patches for strings

From: Horst von Brand
Date: Tue Jun 21 2005 - 16:47:04 EST


Jesper Juhl <juhl-lkml@xxxxxx> wrote:
> I have a bunch (few hundred) of oneliners like the ones below lying around
> on my HD and I'm wondering what the best way to submit them is.
>
> The patches all make the same change, there's just a lot of files the
> change needs to be made in. The change they make is to change strings
> from the form
> [const] char *foo = "blah";
> to
> [const] char foo[] = "blah";
>
> The reason to do this was well explained by Jeff Garzik in the past (and
> now found in the Kernel Janitors TODO) :

Which is dead wrong. A short test program here (Fedora rawhide, i686,
gcc-4.0.0) shows that if you use an array, it is allocated on the stack and
the contents of the (constant, readonly) string is copied there before use,
just as you'd have to expect given C's semantics. I.e., the function gets
larger, slower, and uses more stack. If the array is declared const makes
no difference (AFAIR, it can't, as the const doesn't guarantee it won't be
changed).
--
Dr. Horst H. von Brand User #22616 counter.li.org
Departamento de Informatica Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria +56 32 654239
Casilla 110-V, Valparaiso, Chile Fax: +56 32 797513

-
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/