Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(487)

Side by Side Diff: third_party/lzma/v4_65/files/C/Archive/7z/7zItem.c

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /* 7zItem.c -- 7z Items
2 2008-10-04 : Igor Pavlov : Public domain */
3
4 #include "7zItem.h"
5
6 void SzCoderInfo_Init(CSzCoderInfo *p)
7 {
8 Buf_Init(&p->Props);
9 }
10
11 void SzCoderInfo_Free(CSzCoderInfo *p, ISzAlloc *alloc)
12 {
13 Buf_Free(&p->Props, alloc);
14 SzCoderInfo_Init(p);
15 }
16
17 void SzFolder_Init(CSzFolder *p)
18 {
19 p->Coders = 0;
20 p->BindPairs = 0;
21 p->PackStreams = 0;
22 p->UnpackSizes = 0;
23 p->NumCoders = 0;
24 p->NumBindPairs = 0;
25 p->NumPackStreams = 0;
26 p->UnpackCRCDefined = 0;
27 p->UnpackCRC = 0;
28 p->NumUnpackStreams = 0;
29 }
30
31 void SzFolder_Free(CSzFolder *p, ISzAlloc *alloc)
32 {
33 UInt32 i;
34 if (p->Coders)
35 for (i = 0; i < p->NumCoders; i++)
36 SzCoderInfo_Free(&p->Coders[i], alloc);
37 IAlloc_Free(alloc, p->Coders);
38 IAlloc_Free(alloc, p->BindPairs);
39 IAlloc_Free(alloc, p->PackStreams);
40 IAlloc_Free(alloc, p->UnpackSizes);
41 SzFolder_Init(p);
42 }
43
44 UInt32 SzFolder_GetNumOutStreams(CSzFolder *p)
45 {
46 UInt32 result = 0;
47 UInt32 i;
48 for (i = 0; i < p->NumCoders; i++)
49 result += p->Coders[i].NumOutStreams;
50 return result;
51 }
52
53 int SzFolder_FindBindPairForInStream(CSzFolder *p, UInt32 inStreamIndex)
54 {
55 UInt32 i;
56 for (i = 0; i < p->NumBindPairs; i++)
57 if (p->BindPairs[i].InIndex == inStreamIndex)
58 return i;
59 return -1;
60 }
61
62
63 int SzFolder_FindBindPairForOutStream(CSzFolder *p, UInt32 outStreamIndex)
64 {
65 UInt32 i;
66 for (i = 0; i < p->NumBindPairs; i++)
67 if (p->BindPairs[i].OutIndex == outStreamIndex)
68 return i;
69 return -1;
70 }
71
72 UInt64 SzFolder_GetUnpackSize(CSzFolder *p)
73 {
74 int i = (int)SzFolder_GetNumOutStreams(p);
75 if (i == 0)
76 return 0;
77 for (i--; i >= 0; i--)
78 if (SzFolder_FindBindPairForOutStream(p, i) < 0)
79 return p->UnpackSizes[i];
80 /* throw 1; */
81 return 0;
82 }
83
84 void SzFile_Init(CSzFileItem *p)
85 {
86 p->HasStream = 1;
87 p->IsDir = 0;
88 p->IsAnti = 0;
89 p->FileCRCDefined = 0;
90 p->MTimeDefined = 0;
91 p->Name = 0;
92 }
93
94 static void SzFile_Free(CSzFileItem *p, ISzAlloc *alloc)
95 {
96 IAlloc_Free(alloc, p->Name);
97 SzFile_Init(p);
98 }
99
100 void SzAr_Init(CSzAr *p)
101 {
102 p->PackSizes = 0;
103 p->PackCRCsDefined = 0;
104 p->PackCRCs = 0;
105 p->Folders = 0;
106 p->Files = 0;
107 p->NumPackStreams = 0;
108 p->NumFolders = 0;
109 p->NumFiles = 0;
110 }
111
112 void SzAr_Free(CSzAr *p, ISzAlloc *alloc)
113 {
114 UInt32 i;
115 if (p->Folders)
116 for (i = 0; i < p->NumFolders; i++)
117 SzFolder_Free(&p->Folders[i], alloc);
118 if (p->Files)
119 for (i = 0; i < p->NumFiles; i++)
120 SzFile_Free(&p->Files[i], alloc);
121 IAlloc_Free(alloc, p->PackSizes);
122 IAlloc_Free(alloc, p->PackCRCsDefined);
123 IAlloc_Free(alloc, p->PackCRCs);
124 IAlloc_Free(alloc, p->Folders);
125 IAlloc_Free(alloc, p->Files);
126 SzAr_Init(p);
127 }
OLDNEW
« no previous file with comments | « third_party/lzma/v4_65/files/C/Archive/7z/7zItem.h ('k') | third_party/lzma/v4_65/files/C/Archive/7z/7zMain.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698