Remix.run Logo
saagarjha 6 hours ago

I feel like https://github.com/oven-sh/WebKit/commit/35315978baee84ed1bd... is the more interesting commit tbh

jasdfwasd 6 hours ago | parent [-]

> p = (char*)"";

yikes

lioeters 5 hours ago | parent [-]

I thought that was a typo or the forum software removed something, but no - it's a pointer to an empty string literal. If I understand how that works, this creates a null byte (in the read-only memory section of the compiled output?) and points to it. Before this line it checks if p is NULL.

I wonder what is the advantage of doing this? Maybe to make sure that p is an actual pointer, so later code can just make that assumption.

lokar 5 hours ago | parent [-]

Yeah, it simplifies later code, and is safer in the face of future changes.

Or put another way, it tightens the API/contract of that chunk of code to always return a valid string.

lioeters 4 hours ago | parent [-]

That makes sense, with that "guard" at the top, the rest of the function can return the pointer anywhere. And I imagine the compiler will ensure the empty string literal is created only once. Good to know!