Lines Matching full:sd
193 #define SZ_READ_BYTE(dest) SZ_READ_BYTE_SD(sd, dest)
196 if (sd.Size == 0) return SZ_ERROR_ARCHIVE; \
197 sd.Size--; dest = *sd.Data++;
199 #define SKIP_DATA(sd, size) { sd->Size -= (size_t)(size); sd->Data += (size_t)(size); } argument
200 #define SKIP_DATA2(sd, size) { sd.Size -= (size_t)(size); sd.Data += (size_t)(size); } argument
202 #define SZ_READ_32(dest) if (sd.Size < 4) return SZ_ERROR_ARCHIVE; \
203 dest = GetUi32(sd.Data); SKIP_DATA2(sd, 4);
205 static Z7_NO_INLINE SRes ReadNumber(CSzData *sd, UInt64 *value) in ReadNumber() argument
243 static Z7_NO_INLINE SRes SzReadNumber32(CSzData *sd, UInt32 *value) in SzReadNumber32() argument
247 if (sd->Size == 0) in SzReadNumber32()
249 firstByte = *sd->Data; in SzReadNumber32()
253 sd->Data++; in SzReadNumber32()
254 sd->Size--; in SzReadNumber32()
257 RINOK(ReadNumber(sd, &value64)) in SzReadNumber32()
266 #define ReadID(sd, value) ReadNumber(sd, value) argument
268 static SRes SkipData(CSzData *sd) in SkipData() argument
271 RINOK(ReadNumber(sd, &size)) in SkipData()
272 if (size > sd->Size) in SkipData()
274 SKIP_DATA(sd, size) in SkipData()
278 static SRes WaitId(CSzData *sd, UInt32 id) in WaitId() argument
283 RINOK(ReadID(sd, &type)) in WaitId()
288 RINOK(SkipData(sd)) in WaitId()
292 static SRes RememberBitVector(CSzData *sd, UInt32 numItems, const Byte **v) in RememberBitVector() argument
295 if (numBytes > sd->Size) in RememberBitVector()
297 *v = sd->Data; in RememberBitVector()
298 SKIP_DATA(sd, numBytes) in RememberBitVector()
320 static Z7_NO_INLINE SRes ReadBitVector(CSzData *sd, UInt32 numItems, Byte **v, ISzAllocPtr alloc) in ReadBitVector() argument
331 if (numBytes > sd->Size) in ReadBitVector()
333 MY_ALLOC_AND_CPY(*v, numBytes, sd->Data, alloc) in ReadBitVector()
334 SKIP_DATA(sd, numBytes) in ReadBitVector()
351 CSzData sd; in ReadUi32s() local
355 sd = *sd2; in ReadUi32s()
365 *sd2 = sd; in ReadUi32s()
369 static SRes ReadBitUi32s(CSzData *sd, UInt32 numItems, CSzBitUi32s *crcs, ISzAllocPtr alloc) in ReadBitUi32s() argument
372 RINOK(ReadBitVector(sd, numItems, &crcs->Defs, alloc)) in ReadBitUi32s()
373 return ReadUi32s(sd, numItems, crcs, alloc); in ReadBitUi32s()
376 static SRes SkipBitUi32s(CSzData *sd, UInt32 numItems) in SkipBitUi32s() argument
384 if (numBytes > sd->Size) in SkipBitUi32s()
386 numDefined = CountDefinedBits(sd->Data, numItems); in SkipBitUi32s()
387 SKIP_DATA(sd, numBytes) in SkipBitUi32s()
389 if (numDefined > (sd->Size >> 2)) in SkipBitUi32s()
391 SKIP_DATA(sd, (size_t)numDefined * 4) in SkipBitUi32s()
395 static SRes ReadPackInfo(CSzAr *p, CSzData *sd, ISzAllocPtr alloc) in ReadPackInfo() argument
397 RINOK(SzReadNumber32(sd, &p->NumPackStreams)) in ReadPackInfo()
399 RINOK(WaitId(sd, k7zIdSize)) in ReadPackInfo()
409 RINOK(ReadNumber(sd, &packSize)) in ReadPackInfo()
420 RINOK(ReadID(sd, &type)) in ReadPackInfo()
426 RINOK(SkipBitUi32s(sd, p->NumPackStreams)) in ReadPackInfo()
429 RINOK(SkipData(sd)) in ReadPackInfo()
434 static SRes SzReadSwitch(CSzData *sd)
437 RINOK(SzReadByte(sd, &external));
444 SRes SzGetNextFolderItem(CSzFolder *f, CSzData *sd) in SzGetNextFolderItem() argument
448 const Byte *dataStart = sd->Data; in SzGetNextFolderItem()
455 RINOK(SzReadNumber32(sd, &numCoders)) in SzGetNextFolderItem()
473 if (idSize > sd->Size) in SzGetNextFolderItem()
478 id = ((id << 8) | *sd->Data); in SzGetNextFolderItem()
479 sd->Data++; in SzGetNextFolderItem()
480 sd->Size--; in SzGetNextFolderItem()
494 RINOK(SzReadNumber32(sd, &numStreams)) in SzGetNextFolderItem()
499 RINOK(SzReadNumber32(sd, &numStreams)) in SzGetNextFolderItem()
512 RINOK(SzReadNumber32(sd, &propsSize)) in SzGetNextFolderItem()
513 if (propsSize > sd->Size) in SzGetNextFolderItem()
517 coder->PropsOffset = (size_t)(sd->Data - dataStart); in SzGetNextFolderItem()
519 sd->Data += (size_t)propsSize; in SzGetNextFolderItem()
520 sd->Size -= (size_t)propsSize; in SzGetNextFolderItem()
562 RINOK(SzReadNumber32(sd, &bp->InIndex)) in SzGetNextFolderItem()
567 RINOK(SzReadNumber32(sd, &bp->OutIndex)) in SzGetNextFolderItem()
597 RINOK(SzReadNumber32(sd, &index)) in SzGetNextFolderItem()
613 CSzData sd; in SkipNumbers() local
614 sd = *sd2; in SkipNumbers()
624 if (sd.Size == 0) in SkipNumbers()
626 sd.Size--; in SkipNumbers()
627 sd.Data++; in SkipNumbers()
633 if (i > sd.Size) in SkipNumbers()
635 SKIP_DATA2(sd, i) in SkipNumbers()
637 *sd2 = sd; in SkipNumbers()
652 CSzData sd; in ReadUnpackInfo() local
667 sd = *sd2; in ReadUnpackInfo()
674 sd.Data = tempBufs[index].data; in ReadUnpackInfo()
675 sd.Size = tempBufs[index].size; in ReadUnpackInfo()
683 startBufPtr = sd.Data; in ReadUnpackInfo()
692 p->FoCodersOffsets[fo] = (size_t)(sd.Data - startBufPtr); in ReadUnpackInfo()
694 RINOK(SzReadNumber32(&sd, &numCoders)) in ReadUnpackInfo()
710 if (idSize > sd.Size) in ReadUnpackInfo()
712 SKIP_DATA2(sd, idSize) in ReadUnpackInfo()
719 RINOK(SzReadNumber32(&sd, &coderInStreams)) in ReadUnpackInfo()
720 RINOK(SzReadNumber32(&sd, &coderOutStreams)) in ReadUnpackInfo()
730 RINOK(SzReadNumber32(&sd, &propsSize)) in ReadUnpackInfo()
731 if (propsSize > sd.Size) in ReadUnpackInfo()
733 SKIP_DATA2(sd, propsSize) in ReadUnpackInfo()
763 RINOK(SzReadNumber32(&sd, &index)) in ReadUnpackInfo()
768 RINOK(SzReadNumber32(&sd, &index)) in ReadUnpackInfo()
780 RINOK(SzReadNumber32(&sd, &index)) in ReadUnpackInfo()
812 const size_t dataSize = (size_t)(sd.Data - startBufPtr); in ReadUnpackInfo()
820 if (sd.Size != 0) in ReadUnpackInfo()
822 sd = *sd2; in ReadUnpackInfo()
825 RINOK(WaitId(&sd, k7zIdCodersUnpackSize)) in ReadUnpackInfo()
832 RINOK(ReadNumber(&sd, p->CoderUnpackSizes + i)) in ReadUnpackInfo()
839 RINOK(ReadID(&sd, &type)) in ReadUnpackInfo()
842 *sd2 = sd; in ReadUnpackInfo()
847 RINOK(ReadBitUi32s(&sd, numFolders, &p->FolderCRCs, alloc)) in ReadUnpackInfo()
850 RINOK(SkipData(&sd)) in ReadUnpackInfo()
871 static SRes ReadSubStreamsInfo(CSzAr *p, CSzData *sd, CSubStreamInfo *ssi) in ReadSubStreamsInfo() argument
881 RINOK(ReadID(sd, &type)) in ReadSubStreamsInfo()
885 ssi->sdNumSubStreams.Data = sd->Data; in ReadSubStreamsInfo()
891 RINOK(SzReadNumber32(sd, &numStreams)) in ReadSubStreamsInfo()
900 ssi->sdNumSubStreams.Size = (size_t)(sd->Data - ssi->sdNumSubStreams.Data); in ReadSubStreamsInfo()
905 RINOK(SkipData(sd)) in ReadSubStreamsInfo()
920 ssi->sdSizes.Data = sd->Data; in ReadSubStreamsInfo()
921 RINOK(SkipNumbers(sd, numUnpackSizesInData)) in ReadSubStreamsInfo()
922 ssi->sdSizes.Size = (size_t)(sd->Data - ssi->sdSizes.Data); in ReadSubStreamsInfo()
923 RINOK(ReadID(sd, &type)) in ReadSubStreamsInfo()
932 ssi->sdCRCs.Data = sd->Data; in ReadSubStreamsInfo()
933 RINOK(SkipBitUi32s(sd, numSubDigests)) in ReadSubStreamsInfo()
934 ssi->sdCRCs.Size = (size_t)(sd->Data - ssi->sdCRCs.Data); in ReadSubStreamsInfo()
938 RINOK(SkipData(sd)) in ReadSubStreamsInfo()
940 RINOK(ReadID(sd, &type)) in ReadSubStreamsInfo()
945 CSzData *sd, in SzReadStreamsInfo() argument
958 RINOK(ReadID(sd, &type)) in SzReadStreamsInfo()
961 RINOK(ReadNumber(sd, dataOffset)) in SzReadStreamsInfo()
964 RINOK(ReadPackInfo(p, sd, alloc)) in SzReadStreamsInfo()
967 RINOK(ReadID(sd, &type)) in SzReadStreamsInfo()
971 RINOK(ReadUnpackInfo(p, sd, numFoldersMax, tempBufs, numTempBufs, alloc)) in SzReadStreamsInfo()
972 RINOK(ReadID(sd, &type)) in SzReadStreamsInfo()
976 RINOK(ReadSubStreamsInfo(p, sd, ssi)) in SzReadStreamsInfo()
977 RINOK(ReadID(sd, &type)) in SzReadStreamsInfo()
990 CSzData *sd, in SzReadAndDecodePackedStreams() argument
1001 RINOK(SzReadStreamsInfo(p, sd, numFoldersMax, NULL, 0, &dataStartPos, &ssi, allocTemp)) in SzReadAndDecodePackedStreams()
1064 CSzData sd; in ReadTime() local
1074 sd = *sd2; in ReadTime()
1081 sd.Data = tempBufs[index].data; in ReadTime()
1082 sd.Size = tempBufs[index].size; in ReadTime()
1091 if (sd.Size < 8) in ReadTime()
1093 vals[i].Low = GetUi32(sd.Data); in ReadTime()
1094 vals[i].High = GetUi32(sd.Data + 4); in ReadTime()
1095 SKIP_DATA2(sd, 8) in ReadTime()
1101 *sd2 = sd; in ReadTime()
1112 CSzData *sd, in SzReadHeader2() argument
1131 RINOK(ReadID(sd, &type)) in SzReadHeader2()
1138 RINOK(ReadID(sd, &type2)) in SzReadHeader2()
1141 RINOK(SkipData(sd)) in SzReadHeader2()
1143 RINOK(ReadID(sd, &type)) in SzReadHeader2()
1154 res = SzReadAndDecodePackedStreams(inStream, sd, tempBufs, NUM_ADDITIONAL_STREAMS_MAX, in SzReadHeader2()
1161 RINOK(ReadID(sd, &type)) in SzReadHeader2()
1166 RINOK(SzReadStreamsInfo(&p->db, sd, (UInt32)1 << 30, tempBufs, *numTempBufs, in SzReadHeader2()
1169 RINOK(ReadID(sd, &type)) in SzReadHeader2()
1187 RINOK(SzReadNumber32(sd, &numFiles)) in SzReadHeader2()
1194 RINOK(ReadID(sd, &type)) in SzReadHeader2()
1197 RINOK(ReadNumber(sd, &size)) in SzReadHeader2()
1198 if (size > sd->Size) in SzReadHeader2()
1203 SKIP_DATA(sd, size) in SzReadHeader2()
1217 namesData = sd->Data; in SzReadHeader2()
1222 RINOK(SzReadNumber32(sd, &index)) in SzReadHeader2()
1236 SKIP_DATA(sd, namesSize) in SzReadHeader2()
1242 RINOK(RememberBitVector(sd, numFiles, &emptyStreams)) in SzReadHeader2()
1249 RINOK(RememberBitVector(sd, numEmptyStreams, &emptyFiles)) in SzReadHeader2()
1258 RINOK(ReadBitVector(sd, numFiles, &p->Attribs.Defs, allocMain)) in SzReadHeader2()
1262 sdPtr = sd; in SzReadHeader2()
1266 RINOK(SzReadNumber32(sd, &index)) in SzReadHeader2()
1280 RINOK(ReadBitVector(sd, numFiles, &p->Parents.Defs, allocMain)); in SzReadHeader2()
1281 RINOK(SzReadSwitch(sd)); in SzReadHeader2()
1282 RINOK(ReadUi32s(sd, numFiles, &p->Parents, allocMain)); in SzReadHeader2()
1286 …case k7zIdMTime: RINOK(ReadTime(&p->MTime, numFiles, sd, tempBufs, *numTempBufs, allocMain)) break; in SzReadHeader2()
1287 …case k7zIdCTime: RINOK(ReadTime(&p->CTime, numFiles, sd, tempBufs, *numTempBufs, allocMain)) break; in SzReadHeader2()
1290 SKIP_DATA(sd, size) in SzReadHeader2()
1301 RINOK(ReadID(sd, &type)) in SzReadHeader2()
1304 RINOK(SkipData(sd)) in SzReadHeader2()
1484 CSzData *sd, in SzReadHeader() argument
1497 res = SzReadHeader2(p, sd, inStream, in SzReadHeader()
1506 if (sd->Size != 0) in SzReadHeader()
1577 CSzData sd; in SzArEx_Open2() local
1579 sd.Data = buf.data; in SzArEx_Open2()
1580 sd.Size = buf.size; in SzArEx_Open2()
1582 res = ReadID(&sd, &type); in SzArEx_Open2()
1593 …res = SzReadAndDecodePackedStreams(inStream, &sd, &tempBuf, 1, p->startPosAfterHeader, &tempAr, al… in SzArEx_Open2()
1605 sd.Data = buf.data; in SzArEx_Open2()
1606 sd.Size = buf.size; in SzArEx_Open2()
1607 res = ReadID(&sd, &type); in SzArEx_Open2()
1621 sd2 = sd; in SzArEx_Open2()
1627 res = SzReadHeader(p, &sd, inStream, allocMain, allocTemp); in SzArEx_Open2()