mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-26 04:20:30 +00:00
Make more fixes and improvements
- Remove PAGESIZE constant - Fix realloc() documentation - Fix ttyname_r() error reporting - Make forking more reliable on Windows - Make execvp() a few microseconds faster - Make system() a few microseconds faster - Tighten up the socket-related magic numbers - Loosen restrictions on mmap() offset alignment - Improve GetProgramExecutableName() with getenv("_") - Use mkstemp() as basis for mktemp(), tmpfile(), tmpfd() - Fix flakes in pthread_cancel_test, unix_test, fork_test - Fix recently introduced futex stack overflow regression - Let sockets be passed as stdio to subprocesses on Windows - Improve security of bind() on Windows w/ SO_EXCLUSIVEADDRUSE
This commit is contained in:
parent
140a8a52e5
commit
18bb5888e1
311 changed files with 1239 additions and 2622 deletions
|
@ -258,6 +258,12 @@ static char16_t statusline16[256];
|
|||
RES = (B11 | r0) & r1 & ~r2; \
|
||||
} while (0)
|
||||
|
||||
static void SwapBoards(void) {
|
||||
uint64_t *t = board;
|
||||
board = board2;
|
||||
board2 = t;
|
||||
}
|
||||
|
||||
static void Step(void) {
|
||||
long y, x, yn, xn;
|
||||
yn = byn >> 3;
|
||||
|
@ -275,7 +281,7 @@ static void Step(void) {
|
|||
board[(y + 1 < yn ? y + 1 : 0) * xn + (x + 1 < xn ? x + 1 : 0)]);
|
||||
}
|
||||
}
|
||||
xchg(&board, &board2);
|
||||
SwapBoards();
|
||||
++generation;
|
||||
}
|
||||
|
||||
|
@ -593,7 +599,7 @@ static int LoadFile(const char *path) {
|
|||
if ((c = ReadChar(f)) == -1) goto ReadError;
|
||||
}
|
||||
if (yn > byn || xn > bxn) goto ReadError;
|
||||
xchg(&board, &board2);
|
||||
SwapBoards();
|
||||
bzero(board, (byn * bxn) >> 3);
|
||||
yo = byn / 2 - yn / 2;
|
||||
xo = bxn / 2 - xn / 2;
|
||||
|
@ -640,7 +646,7 @@ static int LoadFile(const char *path) {
|
|||
return 0;
|
||||
ReadError:
|
||||
fclose(f);
|
||||
xchg(&board, &board2);
|
||||
SwapBoards();
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue