Index: mozilla/security/nss/lib/base/nssbase.h |
=================================================================== |
--- mozilla/security/nss/lib/base/nssbase.h (revision 158129) |
+++ mozilla/security/nss/lib/base/nssbase.h (working copy) |
@@ -29,6 +29,9 @@ |
* |
* NSSArena_Create -- constructor |
* NSSArena_Destroy |
+ * NSS_ZAlloc |
+ * NSS_ZRealloc |
+ * NSS_ZFreeIf |
*/ |
/* |
@@ -133,6 +136,135 @@ |
void |
); |
+/* |
+ * NSS_ZNEW |
+ * |
+ * This preprocessor macro will allocate memory for a new object |
+ * of the specified type with nss_ZAlloc, and will cast the |
+ * return value appropriately. If the optional arena argument is |
+ * non-null, the memory will be obtained from that arena; otherwise, |
+ * the memory will be obtained from the heap. This routine may |
+ * return NULL upon error, in which case it will have set an error |
+ * upon the error stack. |
+ * |
+ * The error may be one of the following values: |
+ * NSS_ERROR_INVALID_ARENA |
+ * NSS_ERROR_NO_MEMORY |
+ * |
+ * Return value: |
+ * NULL upon error |
+ * A pointer to the new segment of zeroed memory |
+ */ |
+ |
+/* The following line exceeds 72 characters, but emacs barfs if we split it. */ |
+#define NSS_ZNEW(arenaOpt, type) ((type *)NSS_ZAlloc((arenaOpt), sizeof(type))) |
+ |
+/* |
+ * NSS_ZNEWARRAY |
+ * |
+ * This preprocessor macro will allocate memory for an array of |
+ * new objects, and will cast the return value appropriately. |
+ * If the optional arena argument is non-null, the memory will |
+ * be obtained from that arena; otherwise, the memory will be |
+ * obtained from the heap. This routine may return NULL upon |
+ * error, in which case it will have set an error upon the error |
+ * stack. The array size may be specified as zero. |
+ * |
+ * The error may be one of the following values: |
+ * NSS_ERROR_INVALID_ARENA |
+ * NSS_ERROR_NO_MEMORY |
+ * |
+ * Return value: |
+ * NULL upon error |
+ * A pointer to the new segment of zeroed memory |
+ */ |
+ |
+/* The following line exceeds 72 characters, but emacs barfs if we split it. */ |
+#define NSS_ZNEWARRAY(arenaOpt, type, quantity) ((type *)NSS_ZAlloc((arenaOpt), sizeof(type) * (quantity))) |
+ |
+ |
+/* |
+ * NSS_ZAlloc |
+ * |
+ * This routine allocates and zeroes a section of memory of the |
+ * size, and returns to the caller a pointer to that memory. If |
+ * the optional arena argument is non-null, the memory will be |
+ * obtained from that arena; otherwise, the memory will be obtained |
+ * from the heap. This routine may return NULL upon error, in |
+ * which case it will have set an error upon the error stack. The |
+ * value specified for size may be zero; in which case a valid |
+ * zero-length block of memory will be allocated. This block may |
+ * be expanded by calling NSS_ZRealloc. |
+ * |
+ * The error may be one of the following values: |
+ * NSS_ERROR_INVALID_ARENA |
+ * NSS_ERROR_NO_MEMORY |
+ * NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD |
+ * |
+ * Return value: |
+ * NULL upon error |
+ * A pointer to the new segment of zeroed memory |
+ */ |
+ |
+NSS_EXTERN void * |
+NSS_ZAlloc |
+( |
+ NSSArena *arenaOpt, |
+ PRUint32 size |
+); |
+ |
+/* |
+ * NSS_ZRealloc |
+ * |
+ * This routine reallocates a block of memory obtained by calling |
+ * nss_ZAlloc or nss_ZRealloc. The portion of memory |
+ * between the new and old sizes -- which is either being newly |
+ * obtained or released -- is in either case zeroed. This routine |
+ * may return NULL upon failure, in which case it will have placed |
+ * an error on the error stack. |
+ * |
+ * The error may be one of the following values: |
+ * NSS_ERROR_INVALID_POINTER |
+ * NSS_ERROR_NO_MEMORY |
+ * NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD |
+ * |
+ * Return value: |
+ * NULL upon error |
+ * A pointer to the replacement segment of memory |
+ */ |
+ |
+NSS_EXTERN void * |
+NSS_ZRealloc |
+( |
+ void *pointer, |
+ PRUint32 newSize |
+); |
+ |
+ |
+/* |
+ * NSS_ZFreeIf |
+ * |
+ * If the specified pointer is non-null, then the region of memory |
+ * to which it points -- which must have been allocated with |
+ * nss_ZAlloc -- will be zeroed and released. This routine |
+ * returns a PRStatus value; if successful, it will return PR_SUCCESS. |
+ * If unsuccessful, it will set an error on the error stack and return |
+ * PR_FAILURE. |
+ * |
+ * The error may be one of the following values: |
+ * NSS_ERROR_INVALID_POINTER |
+ * |
+ * Return value: |
+ * PR_SUCCESS |
+ * PR_FAILURE |
+ */ |
+ |
+NSS_EXTERN PRStatus |
+NSS_ZFreeIf |
+( |
+ void *pointer |
+); |
+ |
PR_END_EXTERN_C |
#endif /* NSSBASE_H */ |