fix more unused variable warnings

some of these were coming from stdio functions locking files without
unlocking them. I believe it's useful for this to throw a warning, so
I added a new macro that's self-documenting that the file will never
be unlocked to avoid the warning in the few places where it's wrong.
This commit is contained in:
Rich Felker 2012-11-01 23:46:39 -04:00
parent 3a5aa8e49c
commit a617a8e2ad
4 changed files with 5 additions and 6 deletions

View File

@ -24,6 +24,7 @@
#define UNGET 8 #define UNGET 8
#define FFINALLOCK(f) ((f)->lock>=0 ? __lockfile((f)) : 0)
#define FLOCK(f) int __need_unlock = ((f)->lock>=0 ? __lockfile((f)) : 0) #define FLOCK(f) int __need_unlock = ((f)->lock>=0 ? __lockfile((f)) : 0)
#define FUNLOCK(f) if (__need_unlock) __unlockfile((f)); else #define FUNLOCK(f) if (__need_unlock) __unlockfile((f)); else

View File

@ -435,7 +435,7 @@ static struct dso *load_library(const char *name)
char buf[2*NAME_MAX+2]; char buf[2*NAME_MAX+2];
const char *pathname; const char *pathname;
unsigned char *base, *map; unsigned char *base, *map;
size_t dyno, map_len; size_t map_len;
struct dso *p, temp_dso = {0}; struct dso *p, temp_dso = {0};
int fd; int fd;
struct stat st; struct stat st;
@ -866,7 +866,7 @@ void *__dynlink(int argc, char **argv)
} else { } else {
int fd; int fd;
char *ldname = argv[0]; char *ldname = argv[0];
size_t dyno, l = strlen(ldname); size_t l = strlen(ldname);
if (l >= 3 && !strcmp(ldname+l-3, "ldd")) ldd_mode = 1; if (l >= 3 && !strcmp(ldname+l-3, "ldd")) ldd_mode = 1;
*argv++ = (void *)-1; *argv++ = (void *)-1;
if (argv[0] && !strcmp(argv[0], "--")) *argv++ = (void *)-1; if (argv[0] && !strcmp(argv[0], "--")) *argv++ = (void *)-1;
@ -962,7 +962,6 @@ void *__dynlink(int argc, char **argv)
update_tls_size(); update_tls_size();
if (tls_cnt) { if (tls_cnt) {
struct dso *p;
void *mem = mmap(0, libc.tls_size, PROT_READ|PROT_WRITE, void *mem = mmap(0, libc.tls_size, PROT_READ|PROT_WRITE,
MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
if (mem==MAP_FAILED || if (mem==MAP_FAILED ||

View File

@ -8,7 +8,7 @@ weak_alias(dummy_file, __stderr_used);
static void close_file(FILE *f) static void close_file(FILE *f)
{ {
if (!f) return; if (!f) return;
FLOCK(f); FFINALLOCK(f);
if (f->wpos > f->wbase) f->write(f, 0, 0); if (f->wpos > f->wbase) f->write(f, 0, 0);
if (f->rpos < f->rend) f->seek(f, f->rpos-f->rend, SEEK_CUR); if (f->rpos < f->rend) f->seek(f, f->rpos-f->rend, SEEK_CUR);
} }

View File

@ -5,8 +5,7 @@ int fclose(FILE *f)
int r; int r;
int perm; int perm;
/* This lock is not paired with any unlock. */ FFINALLOCK(f);
FLOCK(f);
if (!(perm = f->flags & F_PERM)) { if (!(perm = f->flags & F_PERM)) {
OFLLOCK(); OFLLOCK();