euclidianAce / ltreesitter

Standalone tree sitter bindings for the Lua language
MIT License
85 stars 4 forks source link

fix(dynamiclib): invalid function pointer to data pointer conversion #24

Closed takase1121 closed 12 months ago

takase1121 commented 12 months ago

When compiling ltreesitter on Windows with all the warnings enabled (based on the Makefile), the line with GetProcAddress throws an error. This is because it actually returns a FARPROC (a function pointer type) and the function returns a void pointer (a data pointer type), and such conversion are illegal in ISO C. POSIX implicitly guarantees this.

This PR instead use double casting to return a void pointer. This isn't beautiful, but it tricks the compiler to thinking that it's valid ISO C.

euclidianAce commented 12 months ago

Thanks!