MCPcopy Create free account
hub / github.com/Tencent/UnLua / lpb_pushtypetable

Function lpb_pushtypetable

Plugins/UnLuaExtensions/LuaProtobuf/Source/src/pb.cpp:1739–1757  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1737}
1738
1739static void lpb_pushtypetable(lua_State *L, lpb_State *LS, const pb_Type *t) {
1740 int mode = LS->encode_mode;
1741 luaL_checkstack(L, 2, "too many levels");
1742 lpb_newmsgtable(L, t);
1743 switch (t->is_proto3 && mode == LPB_DEFDEF ? LPB_COPYDEF : mode) {
1744 case LPB_COPYDEF:
1745 lpb_setdeffields(L, LS, t, (lpb_DefFlags)(USE_FIELD|USE_REPEAT|USE_MESSAGE));
1746 break;
1747 case LPB_METADEF:
1748 lpb_setdeffields(L, LS, t, (lpb_DefFlags)(USE_REPEAT|USE_MESSAGE));
1749 lpb_pushdefmeta(L, LS, t);
1750 lua_setmetatable(L, -2);
1751 break;
1752 default:
1753 if (LS->decode_default_array || LS->decode_default_message)
1754 lpb_setdeffields(L, LS, t, (lpb_DefFlags)(USE_REPEAT|USE_MESSAGE));
1755 break;
1756 }
1757}
1758
1759static void lpb_fetchtable(lpb_Env *e, const pb_Field *f) {
1760 lua_State *L = e->L;

Callers 3

lpb_pushdeffieldFunction · 0.85
lpbD_rawfieldFunction · 0.85
lpbD_decodeFunction · 0.85

Calls 5

luaL_checkstackFunction · 0.85
lpb_newmsgtableFunction · 0.85
lpb_setdeffieldsFunction · 0.85
lpb_pushdefmetaFunction · 0.85
lua_setmetatableFunction · 0.85

Tested by

no test coverage detected