MCPcopy Create free account
hub / github.com/RtlZeroMemory/Rezi / readCommandBounds

Function readCommandBounds

packages/core/src/__tests__/drawlistDecode.ts:69–89  ·  view source on GitHub ↗
(bytes: Uint8Array)

Source from the content-addressed store, hash-verified

67}
68
69function readCommandBounds(bytes: Uint8Array): Readonly<{ cmdOffset: number; cmdEnd: number }> {
70 if (bytes.byteLength < HEADER_SIZE) {
71 throw new Error(`drawlist too small for header (len=${String(bytes.byteLength)})`);
72 }
73
74 const cmdOffset = u32(bytes, 16);
75 const cmdBytes = u32(bytes, 20);
76 const cmdEnd = cmdOffset + cmdBytes;
77 if (cmdBytes === 0) return { cmdOffset, cmdEnd };
78 if (cmdOffset < HEADER_SIZE || cmdOffset > bytes.byteLength) {
79 throw new Error(
80 `drawlist cmdOffset out of bounds (cmdOffset=${String(cmdOffset)}, len=${String(bytes.byteLength)})`,
81 );
82 }
83 if (cmdEnd < cmdOffset || cmdEnd > bytes.byteLength) {
84 throw new Error(
85 `drawlist cmd range out of bounds (cmdOffset=${String(cmdOffset)}, cmdBytes=${String(cmdBytes)}, len=${String(bytes.byteLength)})`,
86 );
87 }
88 return { cmdOffset, cmdEnd };
89}
90
91export function parseCommandHeaders(bytes: Uint8Array): readonly DrawlistCommandHeader[] {
92 const { cmdOffset, cmdEnd } = readCommandBounds(bytes);

Callers 1

parseCommandHeadersFunction · 0.85

Calls 1

u32Function · 0.70

Tested by

no test coverage detected