+++ /dev/null
-/* Copyright (c) 1998,2011,2014 Apple Inc. All Rights Reserved.
- *
- * NOTICE: USE OF THE MATERIALS ACCOMPANYING THIS NOTICE IS SUBJECT
- * TO THE TERMS OF THE SIGNED "FAST ELLIPTIC ENCRYPTION (FEE) REFERENCE
- * SOURCE CODE EVALUATION AGREEMENT" BETWEEN APPLE, INC. AND THE
- * ORIGINAL LICENSEE THAT OBTAINED THESE MATERIALS FROM APPLE,
- * INC. ANY USE OF THESE MATERIALS NOT PERMITTED BY SUCH AGREEMENT WILL
- * EXPOSE YOU TO LIABILITY.
- ***************************************************************************
- *
- * falloc.c - FEE malloc routines
- *
- * Revision History
- * ----------------
- * 28 May 98 at Apple
- * Added Mac-specific allocators from temp memory
- * 20 Aug 96 at NeXT
- * Created.
- */
-
-#include "platform.h"
-#include "falloc.h"
-#include <stdlib.h>
-
-/* watchpoint emulator */
-#define FALLOC_WATCH 0
-#if FALLOC_WATCH
-#include <stdio.h>
-/* set these with debugger */
-void *mallocWatchAddrs;
-void *freeWatchAddrs;
-#endif
-
-/* if NULL, use our own */
-static mallocExternFcn *mallocExt = NULL;
-static freeExternFcn *freeExt = NULL;
-static reallocExternFcn *reallocExt = NULL;
-
-void fallocRegister(mallocExternFcn *mallocExtern,
- freeExternFcn *freeExtern,
- reallocExternFcn *reallocExtern)
-{
- mallocExt = mallocExtern;
- freeExt = freeExtern;
- reallocExt = reallocExtern;
-}
-
-/*
- * All this can be optimized and tailored to specific platforms, of course...
- */
-
-void *fmalloc(unsigned size)
-{
- void *rtn;
- if(mallocExt != NULL) {
- rtn = (mallocExt)(size);
- }
- else {
- rtn = malloc(size);
- }
- #if FALLOC_WATCH
- if(rtn == mallocWatchAddrs) {
- printf("====fmalloc watchpoint (0x%x) hit\n",
- (unsigned)mallocWatchAddrs);
- }
- #endif
- return rtn;
-}
-
-void *fmallocWithData(const void *origData,
- unsigned origDataLen)
-{
- void *rtn = fmalloc(origDataLen);
-
- bcopy(origData, rtn, origDataLen);
- return rtn;
-}
-
-void ffree(void *data)
-{
- #if FALLOC_WATCH
- if(data == freeWatchAddrs) {
- printf("====ffree watchpoint (0x%x) hit\n",
- (unsigned)freeWatchAddrs);
- }
- #endif
- if(freeExt != NULL) {
- (freeExt)(data);
- }
- else {
- free(data);
- }
-}
-
-void *frealloc(void *oldPtr, unsigned newSize)
-{
- #if FALLOC_WATCH
- if(oldPtr == freeWatchAddrs) {
- printf("====frealloc watchpoint (0x%x) hit\n",
- (unsigned)freeWatchAddrs);
- }
- #endif
- if(reallocExt != NULL) {
- return (reallocExt)(oldPtr, newSize);
- }
- else {
- return realloc(oldPtr, newSize);
- }
-}