Browse Source

optimize hot paths of putc with manual shrink-wrapping

this is the analog of commit dd8f02b7dc,
but for putc.
master
Rich Felker 8 years ago
parent
commit
d664061adb
  1. 9
      src/stdio/fputc.c
  2. 9
      src/stdio/putc.c
  3. 3
      src/stdio/putchar.c

9
src/stdio/fputc.c

@ -1,10 +1,7 @@
#include "stdio_impl.h"
#include <stdio.h>
#include "putc.h"
int fputc(int c, FILE *f)
{
if (f->lock < 0 || !__lockfile(f))
return putc_unlocked(c, f);
c = putc_unlocked(c, f);
__unlockfile(f);
return c;
return do_putc(c, f);
}

9
src/stdio/putc.c

@ -1,12 +1,9 @@
#include "stdio_impl.h"
#include <stdio.h>
#include "putc.h"
int putc(int c, FILE *f)
{
if (f->lock < 0 || !__lockfile(f))
return putc_unlocked(c, f);
c = putc_unlocked(c, f);
__unlockfile(f);
return c;
return do_putc(c, f);
}
weak_alias(putc, _IO_putc);

3
src/stdio/putchar.c

@ -1,6 +1,7 @@
#include <stdio.h>
#include "putc.h"
int putchar(int c)
{
return fputc(c, stdout);
return do_putc(c, stdout);
}

Loading…
Cancel
Save