lua_rawgeti прерывает цикл

Страницы: 1
RSS
lua_rawgeti прерывает цикл
 
Тестирую dll, привязанную к Луа.
Происходит загадочная вещь, прошу помочь.
Привожу код внутри dll
Этот цикл работает правильно.
Код
for (int i = 1; i<=4; i++){            
printf("%i", i);
printf("\n");   
//lua_rawgeti(L, -2, i); закомментировано   
//lua_getfield(L, -1, "quantity"); закомментировано
//auto q = lua_tonumber(L, -1); закомментировано
}
Пишет в консоль
1
2
3
4
Код
А этот цикл обрывается на второй итерации:
for (int i = 1; i<=4; i++){            
printf("%i", i);
printf("\n");   
lua_rawgeti(L, -2, i); 
lua_getfield(L, -1, "quantity"); 
auto q = lua_tonumber(L, -1); 
}
Пишет
1
2

Путём опытов я понял, что проблема в функции lua_rawgeti(L, -2, i);  Она обрывает цикл на второй итерации.
Почему?
П.С. Если это важно, то всё это происходит внутри обработки колбека OnQuote
 
Разобрался
В конце не хватало два раза remove
Код
lua_remove(L, -1);
lua_remove(L, -1);
Страницы: 1
Читают тему
Наверх