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

Side by Side Diff: nss/lib/base/item.c

Issue 1843333003: Update NSPR to 4.12 and NSS to 3.23 on iOS (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/nss.git@master
Patch Set: Created 4 years, 8 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
1 /* This Source Code Form is subject to the terms of the Mozilla Public 1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this 2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 4
5 /* 5 /*
6 * item.c 6 * item.c
7 * 7 *
8 * This contains some item-manipulation code. 8 * This contains some item-manipulation code.
9 */ 9 */
10 10
11 #ifndef BASE_H 11 #ifndef BASE_H
12 #include "base.h" 12 #include "base.h"
13 #endif /* BASE_H */ 13 #endif /* BASE_H */
14 14
15 /* 15 /*
16 * nssItem_Create 16 * nssItem_Create
17 * 17 *
18 * -- fgmr comments -- 18 * -- fgmr comments --
19 * 19 *
20 * The error may be one of the following values: 20 * The error may be one of the following values:
21 * NSS_ERROR_INVALID_ARENA 21 * NSS_ERROR_INVALID_ARENA
22 * NSS_ERROR_NO_MEMORY 22 * NSS_ERROR_NO_MEMORY
23 * NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD 23 * NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD
24 * NSS_ERROR_INVALID_POINTER 24 * NSS_ERROR_INVALID_POINTER
25 * 25 *
26 * Return value: 26 * Return value:
27 * A pointer to an NSSItem upon success 27 * A pointer to an NSSItem upon success
28 * NULL upon failure 28 * NULL upon failure
29 */ 29 */
30 30
31 NSS_IMPLEMENT NSSItem * 31 NSS_IMPLEMENT NSSItem *
32 nssItem_Create 32 nssItem_Create(NSSArena *arenaOpt, NSSItem *rvOpt, PRUint32 length,
33 ( 33 const void *data)
34 NSSArena *arenaOpt,
35 NSSItem *rvOpt,
36 PRUint32 length,
37 const void *data
38 )
39 { 34 {
40 NSSItem *rv = (NSSItem *)NULL; 35 NSSItem *rv = (NSSItem *)NULL;
41 36
42 #ifdef DEBUG 37 #ifdef DEBUG
43 if( (NSSArena *)NULL != arenaOpt ) { 38 if ((NSSArena *)NULL != arenaOpt) {
44 if( PR_SUCCESS != nssArena_verifyPointer(arenaOpt) ) { 39 if (PR_SUCCESS != nssArena_verifyPointer(arenaOpt)) {
45 return (NSSItem *)NULL; 40 return (NSSItem *)NULL;
41 }
46 } 42 }
47 }
48 43
49 if( (const void *)NULL == data ) { 44 if ((const void *)NULL == data) {
50 if( length > 0 ) { 45 if (length > 0) {
51 nss_SetError(NSS_ERROR_INVALID_POINTER); 46 nss_SetError(NSS_ERROR_INVALID_POINTER);
52 return (NSSItem *)NULL; 47 return (NSSItem *)NULL;
48 }
53 } 49 }
54 }
55 #endif /* DEBUG */ 50 #endif /* DEBUG */
56 51
57 if( (NSSItem *)NULL == rvOpt ) { 52 if ((NSSItem *)NULL == rvOpt) {
58 rv = (NSSItem *)nss_ZNEW(arenaOpt, NSSItem); 53 rv = (NSSItem *)nss_ZNEW(arenaOpt, NSSItem);
59 if( (NSSItem *)NULL == rv ) { 54 if ((NSSItem *)NULL == rv) {
60 goto loser; 55 goto loser;
56 }
57 } else {
58 rv = rvOpt;
61 } 59 }
62 } else {
63 rv = rvOpt;
64 }
65 60
66 rv->size = length; 61 rv->size = length;
67 rv->data = nss_ZAlloc(arenaOpt, length); 62 rv->data = nss_ZAlloc(arenaOpt, length);
68 if( (void *)NULL == rv->data ) { 63 if ((void *)NULL == rv->data) {
69 goto loser; 64 goto loser;
70 } 65 }
71 66
72 if( length > 0 ) { 67 if (length > 0) {
73 (void)nsslibc_memcpy(rv->data, data, length); 68 (void)nsslibc_memcpy(rv->data, data, length);
74 } 69 }
75 70
76 return rv; 71 return rv;
77 72
78 loser: 73 loser:
79 if( rv != rvOpt ) { 74 if (rv != rvOpt) {
80 nss_ZFreeIf(rv); 75 nss_ZFreeIf(rv);
81 } 76 }
82 77
83 return (NSSItem *)NULL; 78 return (NSSItem *)NULL;
84 } 79 }
85 80
86 NSS_IMPLEMENT void 81 NSS_IMPLEMENT void
87 nssItem_Destroy 82 nssItem_Destroy(NSSItem *item)
88 (
89 NSSItem *item
90 )
91 { 83 {
92 nss_ClearErrorStack(); 84 nss_ClearErrorStack();
93 85
94 nss_ZFreeIf(item->data); 86 nss_ZFreeIf(item->data);
95 nss_ZFreeIf(item); 87 nss_ZFreeIf(item);
96
97 } 88 }
98 89
99 /* 90 /*
100 * nssItem_Duplicate 91 * nssItem_Duplicate
101 * 92 *
102 * -- fgmr comments -- 93 * -- fgmr comments --
103 * 94 *
104 * The error may be one of the following values: 95 * The error may be one of the following values:
105 * NSS_ERROR_INVALID_ARENA 96 * NSS_ERROR_INVALID_ARENA
106 * NSS_ERROR_NO_MEMORY 97 * NSS_ERROR_NO_MEMORY
107 * NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD 98 * NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD
108 * NSS_ERROR_INVALID_ITEM 99 * NSS_ERROR_INVALID_ITEM
109 * 100 *
110 * Return value: 101 * Return value:
111 * A pointer to an NSSItem upon success 102 * A pointer to an NSSItem upon success
112 * NULL upon failure 103 * NULL upon failure
113 */ 104 */
114 105
115 NSS_IMPLEMENT NSSItem * 106 NSS_IMPLEMENT NSSItem *
116 nssItem_Duplicate 107 nssItem_Duplicate(NSSItem *obj, NSSArena *arenaOpt, NSSItem *rvOpt)
117 (
118 NSSItem *obj,
119 NSSArena *arenaOpt,
120 NSSItem *rvOpt
121 )
122 { 108 {
123 #ifdef DEBUG 109 #ifdef DEBUG
124 if( (NSSArena *)NULL != arenaOpt ) { 110 if ((NSSArena *)NULL != arenaOpt) {
125 if( PR_SUCCESS != nssArena_verifyPointer(arenaOpt) ) { 111 if (PR_SUCCESS != nssArena_verifyPointer(arenaOpt)) {
126 return (NSSItem *)NULL; 112 return (NSSItem *)NULL;
113 }
127 } 114 }
128 }
129 115
130 if( (NSSItem *)NULL == obj ) { 116 if ((NSSItem *)NULL == obj) {
131 nss_SetError(NSS_ERROR_INVALID_ITEM); 117 nss_SetError(NSS_ERROR_INVALID_ITEM);
132 return (NSSItem *)NULL; 118 return (NSSItem *)NULL;
133 } 119 }
134 #endif /* DEBUG */ 120 #endif /* DEBUG */
135 121
136 return nssItem_Create(arenaOpt, rvOpt, obj->size, obj->data); 122 return nssItem_Create(arenaOpt, rvOpt, obj->size, obj->data);
137 } 123 }
138 124
139 #ifdef DEBUG 125 #ifdef DEBUG
140 /* 126 /*
141 * nssItem_verifyPointer 127 * nssItem_verifyPointer
142 * 128 *
143 * -- fgmr comments -- 129 * -- fgmr comments --
144 * 130 *
145 * The error may be one of the following values: 131 * The error may be one of the following values:
146 * NSS_ERROR_INVALID_ITEM 132 * NSS_ERROR_INVALID_ITEM
147 * 133 *
148 * Return value: 134 * Return value:
149 * PR_SUCCESS upon success 135 * PR_SUCCESS upon success
150 * PR_FAILURE upon failure 136 * PR_FAILURE upon failure
151 */ 137 */
152 138
153 NSS_IMPLEMENT PRStatus 139 NSS_IMPLEMENT PRStatus
154 nssItem_verifyPointer 140 nssItem_verifyPointer(const NSSItem *item)
155 (
156 const NSSItem *item
157 )
158 { 141 {
159 if( ((const NSSItem *)NULL == item) || 142 if (((const NSSItem *)NULL == item) ||
160 (((void *)NULL == item->data) && (item->size > 0)) ) { 143 (((void *)NULL == item->data) && (item->size > 0))) {
161 nss_SetError(NSS_ERROR_INVALID_ITEM); 144 nss_SetError(NSS_ERROR_INVALID_ITEM);
162 return PR_FAILURE; 145 return PR_FAILURE;
163 } 146 }
164 147
165 return PR_SUCCESS; 148 return PR_SUCCESS;
166 } 149 }
167 #endif /* DEBUG */ 150 #endif /* DEBUG */
168 151
169 /* 152 /*
170 * nssItem_Equal 153 * nssItem_Equal
171 * 154 *
172 * -- fgmr comments -- 155 * -- fgmr comments --
173 * 156 *
174 * The error may be one of the following values: 157 * The error may be one of the following values:
175 * NSS_ERROR_INVALID_ITEM 158 * NSS_ERROR_INVALID_ITEM
176 * 159 *
177 * Return value: 160 * Return value:
178 * PR_TRUE if the items are identical 161 * PR_TRUE if the items are identical
179 * PR_FALSE if they aren't 162 * PR_FALSE if they aren't
180 * PR_FALSE upon error 163 * PR_FALSE upon error
181 */ 164 */
182 165
183 NSS_IMPLEMENT PRBool 166 NSS_IMPLEMENT PRBool
184 nssItem_Equal 167 nssItem_Equal(const NSSItem *one, const NSSItem *two, PRStatus *statusOpt)
185 (
186 const NSSItem *one,
187 const NSSItem *two,
188 PRStatus *statusOpt
189 )
190 { 168 {
191 if( (PRStatus *)NULL != statusOpt ) { 169 if ((PRStatus *)NULL != statusOpt) {
192 *statusOpt = PR_SUCCESS; 170 *statusOpt = PR_SUCCESS;
193 } 171 }
194 172
195 if( ((const NSSItem *)NULL == one) && ((const NSSItem *)NULL == two) ) { 173 if (((const NSSItem *)NULL == one) && ((const NSSItem *)NULL == two)) {
196 return PR_TRUE; 174 return PR_TRUE;
197 } 175 }
198 176
199 if( ((const NSSItem *)NULL == one) || ((const NSSItem *)NULL == two) ) { 177 if (((const NSSItem *)NULL == one) || ((const NSSItem *)NULL == two)) {
200 return PR_FALSE; 178 return PR_FALSE;
201 } 179 }
202 180
203 if( one->size != two->size ) { 181 if (one->size != two->size) {
204 return PR_FALSE; 182 return PR_FALSE;
205 } 183 }
206 184
207 return nsslibc_memequal(one->data, two->data, one->size, statusOpt); 185 return nsslibc_memequal(one->data, two->data, one->size, statusOpt);
208 } 186 }
OLDNEW
« no previous file with comments | « nss/lib/base/hashops.c ('k') | nss/lib/base/libc.c » ('j') | nss/lib/util/secoid.c » ('J')

Powered by Google App Engine
This is Rietveld 408576698