MCPcopy Create free account
hub / github.com/Snapchat/KeyDB / pushArray

Method pushArray

src/SnapshotPayloadParseState.cpp:244–269  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

242}
243
244void SnapshotPayloadParseState::pushArray(long long size) {
245 if (stackParse.empty())
246 throw "Bad Protocol: unexpected trailing data";
247
248 if (size == 0) {
249 stackParse.back().arraycur++;
250 return;
251 }
252
253 if (stackParse.back().name == ParseStageName::Databases) {
254 flushQueuedKeys();
255 current_database = stackParse.back().arraycur;
256 }
257
258 ParseStage stage;
259 stage.name = getNextStage();
260 stage.arraylen = size;
261
262 if (stage.name == ParseStageName::Dataset) {
263 g_pserver->db[current_database]->expand(stage.arraylen);
264 }
265
266 // Note: This affects getNextStage so ensure its after
267 stackParse.back().arraycur++;
268 stackParse.push_back(stage);
269}
270
271void SnapshotPayloadParseState::pushValue(const char *rgch, long long cch) {
272 if (stackParse.empty())

Callers 1

readSnapshotBulkPayloadFunction · 0.80

Calls 2

emptyMethod · 0.45
expandMethod · 0.45

Tested by

no test coverage detected