Тема: SetUpdateCallback возвращает Lua-стек в котором нет таблицы
Какая то странность.
Вызываю CreateDataSource их С++ с заведомо такими параметрами акций по которым в квике нет загруженных данных.
То есть CreateDataSource - возвращает пустую таблицу и я вызываю SetUpdateCallback:
lua_getfield(L, index, "SetUpdateCallback"); //"Извлекаем" из "таблицы" функцию SetUpdateCallback.
lua_pushvalue(L, index); //Помещаем копию обьекта таблицы на вершину стека.
lua_pushcfunction(L, my_callback_); //Помещаем имя Сишой callback функции таблицы на вершину стека.
int status_lua_pcall = lua_pcall(L, 2, 0, 0); //Реализую вызов метода SetUpdateCallback
static int my_callback_(lua_State* L)
{
std::cout << "my_callback_:" << lua_gettop(L) << std::endl;
status = lua_isstring(L, 1);
if (status == 1)
{
std::cout<< "lua_isstring:"<< lua_tostring(L,1) << std::endl ;
}
return 0;
}
И с одной стороны все нормально, my_callback_ - вызывается, НО с другой стороны - я ожидаю там увидеть таблицу запалённую данными свечей, а приходит строка:
1
2
3
4
5
6
...
итд
Такое ощущение, как будто бы похоже на размер таблицы, но в какой то момент это число доходит до 3007 и после этого так и приходит 3007 с последующими вызовами my_callback_ .
Непосредственно в скрипте Lua в квике такой странности не наблюдается, все работает нормально.
Что это может быть ?