| 971 | |
| 972 | |
| 973 | LUA_API int lua_setiuservalue (lua_State *L, int idx, int n) { |
| 974 | TValue *o; |
| 975 | int res; |
| 976 | lua_lock(L); |
| 977 | api_checknelems(L, 1); |
| 978 | o = index2value(L, idx); |
| 979 | api_check(L, ttisfulluserdata(o), "full userdata expected"); |
| 980 | if (!(cast_uint(n) - 1u < cast_uint(uvalue(o)->nuvalue))) |
| 981 | res = 0; /* 'n' not in [1, uvalue(o)->nuvalue] */ |
| 982 | else { |
| 983 | setobj(L, &uvalue(o)->uv[n - 1].uv, s2v(L->top.p - 1)); |
| 984 | luaC_barrierback(L, gcvalue(o), s2v(L->top.p - 1)); |
| 985 | res = 1; |
| 986 | } |
| 987 | L->top.p--; |
| 988 | lua_unlock(L); |
| 989 | return res; |
| 990 | } |
| 991 | |
| 992 | |
| 993 | /* |
no test coverage detected