Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37913543
en ru br
Репозитории ALT

Группа :: Разработка/Прочее
Пакет: lua5.1-module-event

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: luaevent-0.4.3-envfix.patch
Скачать


diff -up luaevent-0.4.3/src/buffer_event.c.envfix luaevent-0.4.3/src/buffer_event.c
--- luaevent-0.4.3/src/buffer_event.c.envfix	2015-01-15 14:49:36.518753869 -0500
+++ luaevent-0.4.3/src/buffer_event.c	2015-01-15 14:51:15.407216159 -0500
@@ -40,7 +40,11 @@ int is_buffer_event(lua_State* L, int id
 static void handle_callback(le_bufferevent* le_ev, short what, int callbackIndex) {
 	lua_State* L = le_ev->base->loop_L;
 	le_weak_get(L, le_ev);
+#if LUA_VERSION_NUM > 501
+	lua_getuservalue(L, -1);
+#else
 	lua_getfenv(L, -1);
+#endif
 	lua_rawgeti(L, -1, callbackIndex);
 	lua_remove(L, -2);
 	lua_pushvalue(L, -2);
@@ -97,7 +101,11 @@ static int buffer_event_push(lua_State*
 	lua_rawseti(L, -2, READ_BUFFER_LOCATION);
 	event_buffer_push(L, ev->ev->output);
 	lua_rawseti(L, -2, WRITE_BUFFER_LOCATION);
+#if LUA_VERSION_NUM > 501
+	lua_setuservalue(L, -2);
+#else
 	lua_setfenv(L, -2);
+#endif
 	ev->base = base;
 	return 1;
 }
@@ -113,7 +121,11 @@ static int buffer_event_gc(lua_State* L)
 		ev->ev = NULL;
 		/* Also clear out the associated input/output event_buffers
 		 * since they would have already been freed.. */
+#if LUA_VERSION_NUM > 501
+		lua_getuservalue(L, -1);
+#else
 		lua_getfenv(L, 1);
+#endif
 		lua_rawgeti(L, -1, READ_BUFFER_LOCATION);
 		lua_rawgeti(L, -2, WRITE_BUFFER_LOCATION);
 		read = event_buffer_check(L, -2);
@@ -133,14 +145,22 @@ static int buffer_event_gc(lua_State* L)
 
 static int buffer_event_get_read(lua_State* L) {
 	(void)buffer_event_get(L, 1);
+#if LUA_VERSION_NUM > 501
+	lua_getuservalue(L, -1);
+#else
 	lua_getfenv(L, 1);
+#endif
 	lua_rawgeti(L, -1, READ_BUFFER_LOCATION);
 	return 1;
 }
 
 static int buffer_event_get_write(lua_State* L) {
 	(void)buffer_event_get(L, 1);
+#if LUA_VERSION_NUM > 501
+	lua_getuservalue(L, -1);
+#else
 	lua_getfenv(L, 1);
+#endif
 	lua_rawgeti(L, -1, WRITE_BUFFER_LOCATION);
 	return 1;
 }
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin