lkml.org 
[lkml]   [2009]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v5 04/12] vsprintf: use TOLOWER whenever possible
    Date
    It decreases code size as well:
    text data bss dec hex filename
    15758 0 8 15766 3d96 vsprintf.o (ex lib/lib.a-BEFORE)
    15726 0 8 15734 3d76 vsprintf.o (ex lib/lib.a-TOLOWER)

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

    diff --git a/lib/vsprintf.c b/lib/vsprintf.c
    index 84fa8f4..d107583 100644
    --- a/lib/vsprintf.c
    +++ b/lib/vsprintf.c
    @@ -981,8 +981,8 @@ precision:
    qualifier:
    /* get the conversion qualifier */
    spec->qualifier = -1;
    - if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L' ||
    - *fmt == 'Z' || *fmt == 'z' || *fmt == 't') {
    + if (*fmt == 'h' || TOLOWER(*fmt) == 'l' ||
    + TOLOWER(*fmt) == 'z' || *fmt == 't') {
    spec->qualifier = *fmt++;
    if (unlikely(spec->qualifier == *fmt)) {
    if (spec->qualifier == 'l') {
    @@ -1049,7 +1049,7 @@ qualifier:
    spec->type = FORMAT_TYPE_LONG;
    else
    spec->type = FORMAT_TYPE_ULONG;
    - } else if (spec->qualifier == 'Z' || spec->qualifier == 'z') {
    + } else if (TOLOWER(spec->qualifier) == 'z') {
    spec->type = FORMAT_TYPE_SIZE_T;
    } else if (spec->qualifier == 't') {
    spec->type = FORMAT_TYPE_PTRDIFF;
    @@ -1196,8 +1196,7 @@ int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
    if (qualifier == 'l') {
    long *ip = va_arg(args, long *);
    *ip = (str - buf);
    - } else if (qualifier == 'Z' ||
    - qualifier == 'z') {
    + } else if (TOLOWER(qualifier) == 'z') {
    size_t *ip = va_arg(args, size_t *);
    *ip = (str - buf);
    } else {
    @@ -1487,7 +1486,7 @@ do { \
    void *skip_arg;
    if (qualifier == 'l')
    skip_arg = va_arg(args, long *);
    - else if (qualifier == 'Z' || qualifier == 'z')
    + else if (TOLOWER(qualifier) == 'z')
    skip_arg = va_arg(args, size_t *);
    else
    skip_arg = va_arg(args, int *);
    @@ -1798,8 +1797,8 @@ int vsscanf(const char *buf, const char *fmt, va_list args)

    /* get conversion qualifier */
    qualifier = -1;
    - if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L' ||
    - *fmt == 'Z' || *fmt == 'z') {
    + if (*fmt == 'h' || TOLOWER(*fmt) == 'l' ||
    + TOLOWER(*fmt) == 'z') {
    qualifier = *fmt++;
    if (unlikely(qualifier == *fmt)) {
    if (qualifier == 'h') {
    --
    1.6.5.2.180.gc5b3e.dirty
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2009-11-15 08:17    [W:0.045 / U:0.824 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site