mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2026-01-31 10:14:40 +03:00
In order to let callers provide their OWN callback functions through the callback function WE provide to PhysFS, we casted the function pointer to a void pointer. Unfortunately, this is apparently undefined behavior... if your compiler doesn't have an extension for it. And most compilers on most architectures do. (In fact compilers on POSIX systems most certainly have it due to dlsym() returning a void* which could actually be a pointer to a function sometimes.) But imo, it's better to be safe than sorry in this regard. Especially when given GCC's approach to optimizing int + 100 > int (spoilers: they remove it entirely! It's faster, but also broken!). I've decided to wrap it in a struct. And as a nice side effect, if we ever need more data to be passed through... well we already have this struct. Technically, it's also standards-compliant to cast a _pointer to_ a function pointer to a void pointer. But that extra layer of pointer indirection would get real confusing to conceptualize real fast (or at least is more confusing than just putting it in a struct).
26 KiB
26 KiB