mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-08 04:08:32 +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
|
@ -2134,6 +2134,10 @@ static void FreeStrings(struct Strings *l) {
|
|||
l->n = 0;
|
||||
}
|
||||
|
||||
static unsigned long roundup2pow(unsigned long x) {
|
||||
return x > 1 ? 2ul << _bsrl(x - 1) : x ? 1 : 0;
|
||||
}
|
||||
|
||||
static void IndexAssets(void) {
|
||||
uint64_t cf;
|
||||
struct Asset *p;
|
||||
|
@ -2145,7 +2149,7 @@ static void IndexAssets(void) {
|
|||
CHECK(READ32LE(zcdir) == kZipCdir64HdrMagic ||
|
||||
READ32LE(zcdir) == kZipCdirHdrMagic);
|
||||
n = GetZipCdirRecords(zcdir);
|
||||
m = _roundup2pow(MAX(1, n) * HASH_LOAD_FACTOR);
|
||||
m = roundup2pow(MAX(1, n) * HASH_LOAD_FACTOR);
|
||||
p = xcalloc(m, sizeof(struct Asset));
|
||||
for (cf = GetZipCdirOffset(zcdir); n--; cf += ZIP_CFILE_HDRSIZE(zmap + cf)) {
|
||||
CHECK_EQ(kZipCfileHdrMagic, ZIP_CFILE_MAGIC(zmap + cf));
|
||||
|
@ -6675,9 +6679,10 @@ static int MemoryMonitor(void *arg, int tid) {
|
|||
addr = (char *)((int64_t)((uint64_t)mi[i].x << 32) >> 16);
|
||||
color = 0;
|
||||
appendf(&b, "\e[0m%lx", addr);
|
||||
pages = (mi[i].size + PAGESIZE - 1) / PAGESIZE;
|
||||
int pagesz = getauxval(AT_PAGESZ);
|
||||
pages = (mi[i].size + pagesz - 1) / pagesz;
|
||||
for (j = 0; j < pages; ++j) {
|
||||
rc = mincore(addr + j * PAGESIZE, PAGESIZE, &rez);
|
||||
rc = mincore(addr + j * pagesz, pagesz, &rez);
|
||||
if (!rc) {
|
||||
if (rez & 1) {
|
||||
if (mi[i].flags & MAP_SHARED) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue