separate getc/putc from fgetc/fputc
for conformance, two functions should not have the same address. a conforming program could use the addresses of getc and fgetc in ways that assume they are distinct. normally i would just use a wrapper, but these functions are so small and performance-critical that an extra layer of function call could make the one that's a wrapper nearly twice as slow, so I'm just duplicating the code instead.
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
#include "stdio_impl.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;
|
||||
}
|
||||
|
||||
weak_alias(putc, _IO_putc);
|
||||
Reference in New Issue
Block a user