Welcome to Soft32 Linux Forums!
FAQFAQ    SearchSearch      ProfileProfile    Private MessagesPrivate Messages   Log inLog in

[PATCH v3 6/7] vsprintf: move local vars to block local va..

 
   Soft32 Home -> Linux -> Kernel RSS
Next:  virtio-net: new section mismatch warning. revert ..  
Author Message
André_Goddard_Rosa

External


Since: Nov 01, 2009
Posts: 7



(Msg. 1) Posted: Wed Nov 04, 2009 9:20 am
Post subject: [PATCH v3 6/7] vsprintf: move local vars to block local vars and remove unneeded ones
Archived from groups: linux>kernel (more info?)

From: André Goddard Rosa <andre.goddard RemoveThis @gmail.com>
Date: Tue, 3 Nov 2009 10:59:30 -0200
Subject: [PATCH v3 6/7] vsprintf: move local vars to block local vars
and remove unneeded ones
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Cleanup by moving variables closer to the scope where they're used in fact.
Also, remove unneeded ones.

Signed-off-by: André Goddard Rosa <andre.goddard RemoveThis @gmail.com>
Acked-by: Frederic Weisbecker <fweisbec RemoveThis @gmail.com>
---
lib/vsprintf.c | 64 ++++++++++++++++++++++++-------------------------------
1 files changed, 28 insertions(+), 36 deletions(-)

diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index af79152..f703fdf 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -842,8 +842,8 @@ static char *pointer(const char *fmt, char *buf,
char *end, void *ptr,
case 'F':
case 'f':
ptr = dereference_function_descriptor(ptr);
- case 's':
/* Fallthrough */
+ case 's':
case 'S':
return symbol_string(buf, end, ptr, spec, *fmt);
case 'R':
@@ -1105,8 +1105,7 @@ qualifier:
int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
{
unsigned long long num;
- char *str, *end, c;
- int read;
+ char *str, *end;
struct printf_spec spec = {0};

/* Reject out-of-range values early. Large positive sizes are
@@ -1125,8 +1124,7 @@ int vsnprintf(char *buf, size_t size, const char
*fmt, va_list args)

while (*fmt) {
const char *old_fmt = fmt;
-
- read = format_decode(fmt, &spec);
+ int read = format_decode(fmt, &spec);

fmt += read;

@@ -1150,7 +1148,9 @@ int vsnprintf(char *buf, size_t size, const char
*fmt, va_list args)
spec.precision = va_arg(args, int);
break;

- case FORMAT_TYPE_CHAR:
+ case FORMAT_TYPE_CHAR: {
+ char c;
+
if (!(spec.flags & LEFT)) {
while (--spec.field_width > 0) {
if (str < end)
@@ -1169,6 +1169,7 @@ int vsnprintf(char *buf, size_t size, const char
*fmt, va_list args)
++str;
}
break;
+ }

case FORMAT_TYPE_STR:
str = string(str, end, va_arg(args, char *), spec);
@@ -1413,7 +1414,6 @@ int vbin_printf(u32 *bin_buf, size_t size, const
char *fmt, va_list args)
{
struct printf_spec spec = {0};
char *str, *end;
- int read;

str = (char *)bin_buf;
end = (char *)(bin_buf + size);
@@ -1439,12 +1439,14 @@ do { \
} while (0)

while (*fmt) {
- read = format_decode(fmt, &spec);
+ int read = format_decode(fmt, &spec);

fmt += read;

switch (spec.type) {
case FORMAT_TYPE_NONE:
+ case FORMAT_TYPE_INVALID:
+ case FORMAT_TYPE_PERCENT_CHAR:
break;

case FORMAT_TYPE_WIDTH:
@@ -1478,12 +1480,6 @@ do { \
fmt++;
break;

- case FORMAT_TYPE_PERCENT_CHAR:
- break;
-
- case FORMAT_TYPE_INVALID:
- break;
-
case FORMAT_TYPE_NRCHARS: {
/* skip %n 's argument */
int qualifier = spec.qualifier;
@@ -1556,10 +1552,9 @@ EXPORT_SYMBOL_GPL(vbin_printf);
*/
int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
{
- unsigned long long num;
- char *str, *end, c;
- const char *args = (const char *)bin_buf;
struct printf_spec spec = {0};
+ char *str, *end;
+ const char *args = (const char *)bin_buf;

if (WARN_ON_ONCE((int) size < 0))
return 0;
@@ -1589,10 +1584,8 @@ int bstr_printf(char *buf, size_t size, const
char *fmt, const u32 *bin_buf)
}

while (*fmt) {
- int read;
const char *old_fmt = fmt;
-
- read = format_decode(fmt, &spec);
+ int read = format_decode(fmt, &spec);

fmt += read;

@@ -1616,7 +1609,9 @@ int bstr_printf(char *buf, size_t size, const
char *fmt, const u32 *bin_buf)
spec.precision = get_arg(int);
break;

- case FORMAT_TYPE_CHAR:
+ case FORMAT_TYPE_CHAR: {
+ char c;
+
if (!(spec.flags & LEFT)) {
while (--spec.field_width > 0) {
if (str < end)
@@ -1634,11 +1629,11 @@ int bstr_printf(char *buf, size_t size, const
char *fmt, const u32 *bin_buf)
++str;
}
break;
+ }

case FORMAT_TYPE_STR: {
const char *str_arg = args;
- size_t len = strlen(str_arg);
- args += len + 1;
+ args += strlen(str_arg) + 1;
str = string(str, end, (char *)str_arg, spec);
break;
}
@@ -1650,11 +1645,6 @@ int bstr_printf(char *buf, size_t size, const
char *fmt, const u32 *bin_buf)
break;

case FORMAT_TYPE_PERCENT_CHAR:
- if (str < end)
- *str = '%';
- ++str;
- break;
-
case FORMAT_TYPE_INVALID:
if (str < end)
*str = '%';
@@ -1665,15 +1655,15 @@ int bstr_printf(char *buf, size_t size, const
char *fmt, const u32 *bin_buf)
/* skip */
break;

- default:
+ default: {
+ unsigned long long num;
+
switch (spec.type) {

case FORMAT_TYPE_LONG_LONG:
num = get_arg(long long);
break;
case FORMAT_TYPE_ULONG:
- num = get_arg(unsigned long);
- break;
case FORMAT_TYPE_LONG:
num = get_arg(unsigned long);
break;
@@ -1703,8 +1693,9 @@ int bstr_printf(char *buf, size_t size, const
char *fmt, const u32 *bin_buf)
}

str = number(str, end, num, spec);
- }
- }
+ } /* default: */
+ } /* switch(spec.type) */
+ } /* while(*fmt) */

if (size > 0) {
if (str < end)
@@ -1758,7 +1749,7 @@ int vsscanf(const char *buf, const char *fmt,
va_list args)
char digit;
int num = 0;
int qualifier, base, field_width;
- int is_sign = 0;
+ bool is_sign;

while (*fmt && *str) {
/* skip any white space in format */
@@ -1814,12 +1805,13 @@ int vsscanf(const char *buf, const char *fmt,
va_list args)
}
}
}
- base = 10;
- is_sign = 0;

if (!*fmt || !*str)
break;

+ base = 10;
+ is_sign = 0;
+
switch (*fmt++) {
case 'c':
{
--
1.6.5.2.143.g8cc62.dirty
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo RemoveThis @vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to top
Login to vote
Display posts from previous:   
Related Topics:
script that import patches from local mm-commits mbox and .. - Hi, At first, change this variable path_to_mbox_file = '/home/michal/.thunderbird/uyw4at28.default/Mail/Local\..

[PATCH 1/2]: HVCS char driver janitoring: move block of co.. - This is a non-urgent two-part janitorial patch. I'm not sure who the upstream maintainer is. This patch obsoletes..

[PATCH] locks: kill redundant local variable - From: \"J. Bruce Fields\" <bfields@fieldses.org> There's no need for another variable local to this lo...

[PATCH 00/14] Permit filesystem local caching - These patches add local caching for network filesystems such as NFS and AFS. This is a preview, so expect bugs. ..

[PATCH 00/10] local_t : adding and standardising local ato.. - local_t : adding and standardising local atomic primitives These patches extend and standardise local_t operations on....

[PATCH 00/10] local_t : adding and standardising local ato.. - local_t : adding and standardising local atomic primitives These patches extend and standardise local_t operations on....
       Soft32 Home -> Linux -> Kernel All times are: Pacific Time (US & Canada) (change)
Page 1 of 1

 
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Categories:
 Windows
  Linux
 Mac
 PDA


[ Contact us | Terms of Service/Privacy Policy ]