| 160 | } |
| 161 | |
| 162 | QVariantList ScriptBase::call(const char *fname, const QVariantList ¶ms, int nRet, QString &errInfo, bool retUseString) |
| 163 | { |
| 164 | if(!L) |
| 165 | { |
| 166 | errInfo = "Wrong Lua State"; |
| 167 | LOG_ERROR(errInfo, "Lua"); |
| 168 | return QVariantList(); |
| 169 | } |
| 170 | if(lua_getglobal(L, fname) != LUA_TFUNCTION) |
| 171 | { |
| 172 | errInfo = QString("%1 is not founded").arg(fname); |
| 173 | LOG_ERROR(errInfo, id()); |
| 174 | return QVariantList(); |
| 175 | } |
| 176 | for(auto &p : params) |
| 177 | { |
| 178 | pushValue(L, p); |
| 179 | } |
| 180 | if(lua_pcall(L, params.size(), nRet, 0)) |
| 181 | { |
| 182 | errInfo=QString(lua_tostring(L, -1)); |
| 183 | lua_pop(L,1); |
| 184 | LOG_ERROR(errInfo, id()); |
| 185 | return QVariantList(); |
| 186 | } |
| 187 | QVariantList rets; |
| 188 | for(int i=0; i<nRet; ++i) |
| 189 | { |
| 190 | rets.append(getValue(L, retUseString)); |
| 191 | lua_pop(L, 1); |
| 192 | } |
| 193 | std::reverse(rets.begin(), rets.end()); |
| 194 | return rets; |
| 195 | } |
| 196 | |
| 197 | QVariant ScriptBase::get(const char *name) |
| 198 | { |
no test coverage detected