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:
Justine Tunney 2023-07-29 18:44:15 -07:00
parent 140a8a52e5
commit 18bb5888e1
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
311 changed files with 1239 additions and 2622 deletions

View file

@ -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;
}