diff options
author | George Hazan <ghazan@miranda.im> | 2020-10-16 14:30:13 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2020-10-16 14:30:13 +0300 |
commit | 4bb9749b21edbe9d97ea16a440501f51d5be036c (patch) | |
tree | 3812bf41208c04b3ba2761fbde0c46d27a1dbae8 | |
parent | cab7806ebaf3a570d995c128a08d5defc527db14 (diff) |
MirLua:
- fixes #2589 (MirLua doesn't work correctly in 64-bit Miranda);
- code cleaning;
- version bump
-rw-r--r-- | plugins/MirLua/MirLua.vcxproj | 1 | ||||
-rw-r--r-- | plugins/MirLua/MirLua.vcxproj.filters | 3 | ||||
-rw-r--r-- | plugins/MirLua/src/Modules/m_core.cpp | 8 | ||||
-rw-r--r-- | plugins/MirLua/src/Modules/m_http.cpp | 6 | ||||
-rw-r--r-- | plugins/MirLua/src/environment.cpp | 8 | ||||
-rw-r--r-- | plugins/MirLua/src/netlib.cpp | 20 | ||||
-rw-r--r-- | plugins/MirLua/src/plugin.cpp | 10 | ||||
-rw-r--r-- | plugins/MirLua/src/plugin.h | 2 | ||||
-rw-r--r-- | plugins/MirLua/src/stdafx.h | 4 | ||||
-rw-r--r-- | plugins/MirLua/src/utils.cpp | 4 | ||||
-rw-r--r-- | plugins/MirLua/src/version.h | 2 |
11 files changed, 24 insertions, 44 deletions
diff --git a/plugins/MirLua/MirLua.vcxproj b/plugins/MirLua/MirLua.vcxproj index 1c5086294c..1be3ea14b9 100644 --- a/plugins/MirLua/MirLua.vcxproj +++ b/plugins/MirLua/MirLua.vcxproj @@ -78,7 +78,6 @@ <PrecompiledHeaderFile>..\stdafx.h</PrecompiledHeaderFile>
</ClCompile>
<ClCompile Include="src\module_loader.cpp" />
- <ClCompile Include="src\netlib.cpp" />
<ClCompile Include="src\options.cpp" />
<ClCompile Include="src\plugin.cpp" />
<ClCompile Include="src\script.cpp" />
diff --git a/plugins/MirLua/MirLua.vcxproj.filters b/plugins/MirLua/MirLua.vcxproj.filters index 107370fd13..4e30b4279f 100644 --- a/plugins/MirLua/MirLua.vcxproj.filters +++ b/plugins/MirLua/MirLua.vcxproj.filters @@ -21,9 +21,6 @@ <ClCompile Include="src\module_loader.cpp">
<Filter>Source Files</Filter>
</ClCompile>
- <ClCompile Include="src\netlib.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
<ClCompile Include="src\options.cpp">
<Filter>Source Files</Filter>
</ClCompile>
diff --git a/plugins/MirLua/src/Modules/m_core.cpp b/plugins/MirLua/src/Modules/m_core.cpp index 90f022a9dc..9a608f14af 100644 --- a/plugins/MirLua/src/Modules/m_core.cpp +++ b/plugins/MirLua/src/Modules/m_core.cpp @@ -21,12 +21,12 @@ static int HookEventLuaParam(void *obj, WPARAM wParam, LPARAM lParam, LPARAM par lua_rawgeti(L, LUA_REGISTRYINDEX, ref); if (wParam) - lua_pushinteger(L, wParam); + lua_pushlightuserdata(L, (void *)wParam); else lua_pushnil(L); if (lParam) - lua_pushinteger(L, lParam); + lua_pushlightuserdata(L, (void *)lParam); else lua_pushnil(L); @@ -122,8 +122,8 @@ INT_PTR CreateServiceFunctionLuaStateParam(void *obj, WPARAM wParam, LPARAM lPar int ref = param; lua_rawgeti(L, LUA_REGISTRYINDEX, ref); - lua_pushinteger(L, wParam); - lua_pushinteger(L, lParam); + lua_pushlightuserdata(L, (void *)wParam); + lua_pushlightuserdata(L, (void *)lParam); luaM_pcall(L, 2, 1); INT_PTR res = lua_tointeger(L, 1); diff --git a/plugins/MirLua/src/Modules/m_http.cpp b/plugins/MirLua/src/Modules/m_http.cpp index 006c7e9876..a3c501c44e 100644 --- a/plugins/MirLua/src/Modules/m_http.cpp +++ b/plugins/MirLua/src/Modules/m_http.cpp @@ -68,7 +68,7 @@ static void SetContent(NETLIBHTTPREQUEST *request, const char *data, size_t leng if (request->pData != nullptr) mir_free(request->pData); request->pData = mir_strdup(data); - request->dataLength = length; + request->dataLength = (int)length; } /***********************************************/ @@ -205,7 +205,7 @@ static const luaL_Reg contentApi[] = static NETLIBHTTPREQUEST* response_Create(lua_State *L, NETLIBHTTPREQUEST *request) { - NETLIBHTTPREQUEST *response = Netlib_HttpTransaction(g_hNetlib, request); + NETLIBHTTPREQUEST *response = Netlib_HttpTransaction(g_plugin.hNetlib, request); NETLIBHTTPREQUEST **udata = (NETLIBHTTPREQUEST**)lua_newuserdata(L, sizeof(NETLIBHTTPREQUEST*)); *udata = response; luaL_setmetatable(L, MT_NETLIBHTTPRESPONSE); @@ -431,7 +431,7 @@ static int request_Send(lua_State *L) static int request__index(lua_State *L) { - NETLIBHTTPREQUEST *request = *(NETLIBHTTPREQUEST**)luaL_checkudata(L, 1, MT_NETLIBHTTPREQUEST); + luaL_checkudata(L, 1, MT_NETLIBHTTPREQUEST); const char *key = lua_tostring(L, 2); if (mir_strcmpi(key, "Method") == 0) diff --git a/plugins/MirLua/src/environment.cpp b/plugins/MirLua/src/environment.cpp index e0b3ed5344..2c34af11bd 100644 --- a/plugins/MirLua/src/environment.cpp +++ b/plugins/MirLua/src/environment.cpp @@ -58,12 +58,12 @@ static int HookEventEnvParam(void *obj, WPARAM wParam, LPARAM lParam, LPARAM par lua_rawgeti(env->L, LUA_REGISTRYINDEX, ref); if (wParam) - lua_pushinteger(env->L, wParam); + lua_pushlightuserdata(env->L, (void*)wParam); else lua_pushnil(env->L); if (lParam) - lua_pushinteger(env->L, lParam); + lua_pushlightuserdata(env->L, (void *)lParam); else lua_pushnil(env->L); @@ -98,8 +98,8 @@ static INT_PTR CreateServiceFunctionEnvParam(void *obj, WPARAM wParam, LPARAM lP int ref = param; lua_rawgeti(env->L, LUA_REGISTRYINDEX, ref); - lua_pushinteger(env->L, wParam); - lua_pushinteger(env->L, lParam); + lua_pushlightuserdata(env->L, (void *)wParam); + lua_pushlightuserdata(env->L, (void *)lParam); luaM_pcall(env->L, 2, 1); INT_PTR res = lua_tointeger(env->L, 1); diff --git a/plugins/MirLua/src/netlib.cpp b/plugins/MirLua/src/netlib.cpp deleted file mode 100644 index 246ed9ce04..0000000000 --- a/plugins/MirLua/src/netlib.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include "stdafx.h" - -HNETLIBUSER g_hNetlib = nullptr; - -void LoadNetlib() -{ - NETLIBUSER nlu = {}; - nlu.flags = NUF_OUTGOING | NUF_INCOMING | NUF_HTTPCONNS; - nlu.szDescriptiveName.a = MODULENAME; - nlu.szSettingsModule = MODULENAME; - g_hNetlib = Netlib_RegisterUser(&nlu); -} - -void UnloadNetlib() -{ - if (g_hNetlib) { - Netlib_CloseHandle(g_hNetlib); - g_hNetlib = nullptr; - } -}
\ No newline at end of file diff --git a/plugins/MirLua/src/plugin.cpp b/plugins/MirLua/src/plugin.cpp index e64d52863d..3ca4a9524e 100644 --- a/plugins/MirLua/src/plugin.cpp +++ b/plugins/MirLua/src/plugin.cpp @@ -123,8 +123,13 @@ int CMPlugin::OnModulesLoaded(WPARAM, LPARAM) int CMPlugin::Load() { + NETLIBUSER nlu = {}; + nlu.flags = NUF_OUTGOING | NUF_INCOMING | NUF_HTTPCONNS; + nlu.szDescriptiveName.a = MODULENAME; + nlu.szSettingsModule = MODULENAME; + hNetlib = Netlib_RegisterUser(&nlu); + LoadIcons(); - LoadNetlib(); LoadLua(); HookPluginEvent(ME_SYSTEM_MODULESLOADED, &CMPlugin::OnModulesLoaded); @@ -134,8 +139,9 @@ int CMPlugin::Load() int CMPlugin::Unload() { + Netlib_CloseHandle(hNetlib); + UnloadLua(); - UnloadNetlib(); return 0; } diff --git a/plugins/MirLua/src/plugin.h b/plugins/MirLua/src/plugin.h index dc07965144..bf6b99effe 100644 --- a/plugins/MirLua/src/plugin.h +++ b/plugins/MirLua/src/plugin.h @@ -5,6 +5,8 @@ struct CMPlugin : public PLUGIN<CMPlugin> friend class CMLuaOptionsMain; friend class CMLuaEvaluateOptions; + HNETLIBUSER hNetlib = nullptr; + private: lua_State *L; diff --git a/plugins/MirLua/src/stdafx.h b/plugins/MirLua/src/stdafx.h index d908b7b36a..d31e8b55c0 100644 --- a/plugins/MirLua/src/stdafx.h +++ b/plugins/MirLua/src/stdafx.h @@ -68,10 +68,6 @@ extern HANDLE g_hScriptsFolder; #define LUATEXTSCRIPTEXT L"lua"
#define LUAPRECSCRIPTEXT L"luac"
-extern HNETLIBUSER g_hNetlib;
-void LoadNetlib();
-void UnloadNetlib();
-
void LoadIcons();
/* utils */
diff --git a/plugins/MirLua/src/utils.cpp b/plugins/MirLua/src/utils.cpp index f1ac61ae85..7c0b56134c 100644 --- a/plugins/MirLua/src/utils.cpp +++ b/plugins/MirLua/src/utils.cpp @@ -4,7 +4,7 @@ void Log(const char *format, ...) { va_list args; va_start(args, format); - Netlib_Log(g_hNetlib, CMStringA().FormatV(format, args)); + Netlib_Log(g_plugin.hNetlib, CMStringA().FormatV(format, args)); va_end(args); } @@ -12,7 +12,7 @@ void Log(const wchar_t *format, ...) { va_list args; va_start(args, format); - Netlib_LogW(g_hNetlib, CMStringW().FormatV(format, args)); + Netlib_LogW(g_plugin.hNetlib, CMStringW().FormatV(format, args)); va_end(args); } diff --git a/plugins/MirLua/src/version.h b/plugins/MirLua/src/version.h index fc519ba731..985d5663be 100644 --- a/plugins/MirLua/src/version.h +++ b/plugins/MirLua/src/version.h @@ -1,7 +1,7 @@ #define __MAJOR_VERSION 0
#define __MINOR_VERSION 11
#define __RELEASE_NUM 9
-#define __BUILD_NUM 1
+#define __BUILD_NUM 2
#include <stdver.h>
|