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) int fputc(int c, FILE *f)
{ {
if (f->lock < 0 || !__lockfile(f)) return do_putc(c, f);
return putc_unlocked(c, f);
c = putc_unlocked(c, f);
__unlockfile(f);
return c;
} }

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) int putc(int c, FILE *f)
{ {
if (f->lock < 0 || !__lockfile(f)) return do_putc(c, f);
return putc_unlocked(c, f);
c = putc_unlocked(c, f);
__unlockfile(f);
return c;
} }
weak_alias(putc, _IO_putc); weak_alias(putc, _IO_putc);

3
src/stdio/putchar.c

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

Loading…
Cancel
Save