palloc.h
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:1k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. /*-------------------------------------------------------------------------
  2.  *
  3.  * palloc.h
  4.  *   POSTGRES memory allocator definitions.
  5.  *
  6.  *
  7.  * Copyright (c) 1994, Regents of the University of California
  8.  *
  9.  * $Id: palloc.h,v 1.9 1999/05/25 16:14:56 momjian Exp $
  10.  *
  11.  *-------------------------------------------------------------------------
  12.  */
  13. #ifndef PALLOC_H
  14. #define PALLOC_H
  15. #include "c.h"
  16. #ifdef PALLOC_IS_MALLOC
  17. #define palloc(s)   malloc(s)
  18. #define pfree(p)   free(p)
  19. #define repalloc(p,s) realloc((p),(s))
  20. #else /* ! PALLOC_IS_MALLOC */
  21. /* ----------
  22.  * In the case we use memory contexts, use macro's for palloc() etc.
  23.  * ----------
  24.  */
  25. #include "utils/mcxt.h"
  26. #define palloc(s)   ((void *)MemoryContextAlloc(CurrentMemoryContext,(Size)(s)))
  27. #define pfree(p)   MemoryContextFree(CurrentMemoryContext,(Pointer)(p))
  28. #define repalloc(p,s) ((void *)MemoryContextRealloc(CurrentMemoryContext,(Pointer)(p),(Size)(s)))
  29. #endif  /* PALLOC_IS_MALLOC */
  30. /* like strdup except uses palloc */
  31. extern char *pstrdup(char *pointer);
  32. #endif  /* PALLOC_H */