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

Side by Side Diff: nss/lib/base/baset.h

Issue 2078763002: Delete bundled copy of NSS and replace with README. (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/nss@master
Patch Set: Delete bundled copy of NSS and replace with README. Created 4 years, 6 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
« no previous file with comments | « nss/lib/base/base.h ('k') | nss/lib/base/error.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4
5 #ifndef BASET_H
6 #define BASET_H
7
8 /*
9 * baset.h
10 *
11 * This file contains definitions for the basic types used throughout
12 * nss but not available publicly.
13 */
14
15 #ifndef NSSBASET_H
16 #include "nssbaset.h"
17 #endif /* NSSBASET_H */
18
19 #include "plhash.h"
20
21 PR_BEGIN_EXTERN_C
22
23 /*
24 * nssArenaMark
25 *
26 * This type is used to mark the current state of an NSSArena.
27 */
28
29 struct nssArenaMarkStr;
30 typedef struct nssArenaMarkStr nssArenaMark;
31
32 #ifdef DEBUG
33 /*
34 * ARENA_THREADMARK
35 *
36 * Optionally, this arena implementation can be compiled with some
37 * runtime checking enabled, which will catch the situation where
38 * one thread "marks" the arena, another thread allocates memory,
39 * and then the mark is released. Usually this is a surprise to
40 * the second thread, and this leads to weird runtime errors.
41 * Define ARENA_THREADMARK to catch these cases; we define it for all
42 * (internal and external) debug builds.
43 */
44 #define ARENA_THREADMARK
45
46 /*
47 * ARENA_DESTRUCTOR_LIST
48 *
49 * Unfortunately, our pointer-tracker facility, used in debug
50 * builds to agressively fight invalid pointers, requries that
51 * pointers be deregistered when objects are destroyed. This
52 * conflicts with the standard arena usage where "memory-only"
53 * objects (that don't hold onto resources outside the arena)
54 * can be allocated in an arena, and never destroyed other than
55 * when the arena is destroyed. Therefore we have added a
56 * destructor-registratio facility to our arenas. This was not
57 * a simple decision, since we're getting ever-further away from
58 * the original arena philosophy. However, it was felt that
59 * adding this in debug builds wouldn't be so bad; as it would
60 * discourage them from being used for "serious" purposes.
61 * This facility requires ARENA_THREADMARK to be defined.
62 */
63 #ifdef ARENA_THREADMARK
64 #define ARENA_DESTRUCTOR_LIST
65 #endif /* ARENA_THREADMARK */
66
67 #endif /* DEBUG */
68
69 typedef struct nssListStr nssList;
70 typedef struct nssListIteratorStr nssListIterator;
71 typedef PRBool (*nssListCompareFunc)(void *a, void *b);
72 typedef PRIntn (*nssListSortFunc)(void *a, void *b);
73 typedef void (*nssListElementDestructorFunc)(void *el);
74
75 typedef struct nssHashStr nssHash;
76 typedef void(PR_CALLBACK *nssHashIterator)(const void *key, void *value,
77 void *arg);
78
79 /*
80 * nssPointerTracker
81 *
82 * This type is used in debug builds (both external and internal) to
83 * track our object pointers. Objects of this type must be statically
84 * allocated, which means the structure size must be available to the
85 * compiler. Therefore we must expose the contents of this structure.
86 * But please don't access elements directly; use the accessors.
87 */
88
89 #ifdef DEBUG
90 struct nssPointerTrackerStr {
91 PRCallOnceType once;
92 PZLock *lock;
93 PLHashTable *table;
94 };
95 typedef struct nssPointerTrackerStr nssPointerTracker;
96 #endif /* DEBUG */
97
98 /*
99 * nssStringType
100 *
101 * There are several types of strings in the real world. We try to
102 * use only UTF8 and avoid the rest, but that's not always possible.
103 * So we have a couple converter routines to go to and from the other
104 * string types. We have to be able to specify those string types,
105 * so we have this enumeration.
106 */
107
108 enum nssStringTypeEnum {
109 nssStringType_DirectoryString,
110 nssStringType_TeletexString, /* Not "teletext" with trailing 't' */
111 nssStringType_PrintableString,
112 nssStringType_UniversalString,
113 nssStringType_BMPString,
114 nssStringType_UTF8String,
115 nssStringType_PHGString,
116 nssStringType_GeneralString,
117
118 nssStringType_Unknown = -1
119 };
120 typedef enum nssStringTypeEnum nssStringType;
121
122 PR_END_EXTERN_C
123
124 #endif /* BASET_H */
OLDNEW
« no previous file with comments | « nss/lib/base/base.h ('k') | nss/lib/base/error.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698