MCPcopy Create free account
hub / github.com/defold/defold / PushTable

Function PushTable

engine/script/src/script_table.cpp:1154–1181  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1152#undef CHECK_PUSHTABLE_OOB
1153
1154 void PushTable(lua_State*L, const char* buffer, uint32_t buffer_size)
1155 {
1156 TableHeader header;
1157 const char* original_buffer = buffer;
1158
1159 // Check so that buffer has enough size to read header
1160 if (buffer_size < sizeof(TableHeader)) {
1161 char str[256];
1162 dmSnPrintf(str, sizeof(str), "Not enough data to read table header (buffer size: %u, header size: %u)", buffer_size, (uint32_t)sizeof(TableHeader));
1163 luaL_error(L, "%s", str);
1164 }
1165
1166 buffer = ReadHeader(buffer, header);
1167 if (IsSupportedVersion(header))
1168 {
1169 buffer_size -= sizeof(TableHeader);
1170 PushTableLogger logger;
1171 logger.m_BufferStart = buffer;
1172 logger.m_BufferSize = buffer_size;
1173 DoPushTable(L, logger, header, original_buffer, buffer, buffer_size, 0);
1174 }
1175 else
1176 {
1177 char str[256];
1178 dmSnPrintf(str, sizeof(str), "Unsupported serialized table data: version = 0x%x (current = 0x%x)", header.m_Version, TABLE_VERSION_CURRENT);
1179 luaL_error(L, "%s", str);
1180 }
1181 }
1182
1183}

Callers 10

HandleMessageFunction · 0.85
Sys_LoadFunction · 0.85
Sys_DeserializeFunction · 0.85
ReadSerializedTableFunction · 0.85
ReadUnsupportedVersionFunction · 0.85
TEST_FFunction · 0.85
ParseTruncatedTableFunction · 0.85
DispatchCallbackTableFunction · 0.85
RunScriptFunction · 0.85
RunScriptFunction · 0.85

Calls 5

dmSnPrintfFunction · 0.85
luaL_errorFunction · 0.85
ReadHeaderFunction · 0.85
IsSupportedVersionFunction · 0.85
DoPushTableFunction · 0.85

Tested by 5

ReadSerializedTableFunction · 0.68
ReadUnsupportedVersionFunction · 0.68
TEST_FFunction · 0.68
ParseTruncatedTableFunction · 0.68
DispatchCallbackTableFunction · 0.68