Re: [PATCH 2/6] 2.4.19-rc1 number() stack reduction

From: Badari Pulavarty
Date: Mon Jan 10 2005 - 21:02:01 EST



Yep. My bad. I got little carried away...

But I remember seeing this on earlier distros..

Thanks,
Badari

Kevin P. Fleming wrote:

Badari Pulavarty wrote:

+ /* Move these off of the stack for number(). This way we reduce the
+ * size of the stack and don't have to copy them every time we are called.
+ */
+const char small_digits[] = "0123456789abcdefghijklmnopqrstuvwxyz";
+const char large_digits[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+
static char * number(char * buf, char * end, long long num, int base, int size, int precision, int type)
{
char c,sign,tmp[66];
const char *digits;
- static const char small_digits[] = "0123456789abcdefghijklmnopqrstuvwxyz";
- static const char large_digits[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";


Is this actually correct? Since these are declared "static const", they are not on the stack anyway, because they have to persist between calls to this function and cannot be changed. I'd be very surprised if the compiler was copying this data from the static data segment to the stack on every entry to this function.
-
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/



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