| 18029 | } |
| 18030 | |
| 18031 | int call(lua_State* L) { |
| 18032 | int nr; |
| 18033 | { |
| 18034 | M mem = detail::unwrap(detail::deref(member)); |
| 18035 | switch (lua_gettop(L)) { |
| 18036 | case 0: |
| 18037 | nr = call_detail::call_wrapped<T, true, false, -1>(L, var, mem); |
| 18038 | break; |
| 18039 | case 1: |
| 18040 | nr = call_detail::call_wrapped<T, false, false, -1>(L, var, mem); |
| 18041 | break; |
| 18042 | default: |
| 18043 | nr = luaL_error(L, "sol: incorrect number of arguments to member variable function"); |
| 18044 | break; |
| 18045 | } |
| 18046 | } |
| 18047 | if (is_yielding) { |
| 18048 | return lua_yield(L, nr); |
| 18049 | } |
| 18050 | else { |
| 18051 | return nr; |
| 18052 | } |
| 18053 | } |
| 18054 | |
| 18055 | int operator()(lua_State* L) { |
| 18056 | auto f = [&](lua_State*) -> int { return this->call(L); }; |
no test coverage detected