1
0
mirror of https://github.com/lammertb/libhttp.git synced 2025-12-22 04:02:04 +03:00

BUG: Cannot cast Lua function pointer in standard C

src/civetweb.c:5533:0:
src/mod_lua.inl: In function ‘mg_exec_lua_script’:
src/mod_lua.inl:1169:37: error: ISO C forbids conversion of object
  pointer to function pointer type [-Wpedantic]
      lua_pushcclosure(L, (lua_CFunction) exports[i + 1], 0);
                              ^

This patch uses the POSIX.1-2003 workaround.
See linux.die.net/man/3/dlsym
This commit is contained in:
Matt Clarkson
2015-04-24 12:34:11 +01:00
parent c8a5e26a93
commit 260f8a43b9

View File

@@ -1162,7 +1162,9 @@ void mg_exec_lua_script(struct mg_connection *conn, const char *path,
lua_pushglobaltable(L);
for (i = 0; exports[i] != NULL && exports[i + 1] != NULL; i += 2) {
lua_pushstring(L, (const char *)(exports[i]));
lua_pushcclosure(L, (lua_CFunction) exports[i + 1], 0);
lua_CFunction func;
*(const void**)(&func) = exports[i + 1];
lua_pushcclosure(L, func, 0);
lua_rawset(L, -3);
}
}