Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(228)

Side by Side Diff: fusl/src/stdio/fclose.c

Issue 1714623002: [fusl] clang-format fusl (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: headers too Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #include "stdio_impl.h" 1 #include "stdio_impl.h"
2 #include "libc.h" 2 #include "libc.h"
3 3
4 static void dummy(FILE *f) { } 4 static void dummy(FILE* f) {}
5 weak_alias(dummy, __unlist_locked_file); 5 weak_alias(dummy, __unlist_locked_file);
6 6
7 int fclose(FILE *f) 7 int fclose(FILE* f) {
8 { 8 int r;
9 » int r; 9 int perm;
10 » int perm;
11 »
12 » FLOCK(f);
13 10
14 » __unlist_locked_file(f); 11 FLOCK(f);
15 12
16 » if (!(perm = f->flags & F_PERM)) { 13 __unlist_locked_file(f);
17 » » FILE **head = __ofl_lock();
18 » » if (f->prev) f->prev->next = f->next;
19 » » if (f->next) f->next->prev = f->prev;
20 » » if (*head == f) *head = f->next;
21 » » __ofl_unlock();
22 » }
23 14
24 » r = fflush(f); 15 if (!(perm = f->flags & F_PERM)) {
25 » r |= f->close(f); 16 FILE** head = __ofl_lock();
17 if (f->prev)
18 f->prev->next = f->next;
19 if (f->next)
20 f->next->prev = f->prev;
21 if (*head == f)
22 *head = f->next;
23 __ofl_unlock();
24 }
26 25
27 » if (f->getln_buf) free(f->getln_buf); 26 r = fflush(f);
28 » if (!perm) free(f); 27 r |= f->close(f);
29 » else FUNLOCK(f);
30 28
31 » return r; 29 if (f->getln_buf)
30 free(f->getln_buf);
31 if (!perm)
32 free(f);
33 else
34 FUNLOCK(f);
35
36 return r;
32 } 37 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698