mem0.c 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*
  2. ** 2008 October 28
  3. **
  4. ** The author disclaims copyright to this source code. In place of
  5. ** a legal notice, here is a blessing:
  6. **
  7. ** May you do good and not evil.
  8. ** May you find forgiveness for yourself and forgive others.
  9. ** May you share freely, never taking more than you give.
  10. **
  11. *************************************************************************
  12. **
  13. ** This file contains a no-op memory allocation drivers for use when
  14. ** SQLITE_ZERO_MALLOC is defined. The allocation drivers implemented
  15. ** here always fail. SQLite will not operate with these drivers. These
  16. ** are merely placeholders. Real drivers must be substituted using
  17. ** sqlite3_config() before SQLite will operate.
  18. */
  19. #include "sqliteInt.h"
  20. /*
  21. ** This version of the memory allocator is the default. It is
  22. ** used when no other memory allocator is specified using compile-time
  23. ** macros.
  24. */
  25. #ifdef SQLITE_ZERO_MALLOC
  26. /*
  27. ** No-op versions of all memory allocation routines
  28. */
  29. static void *sqlite3MemMalloc(int nByte){ return 0; }
  30. static void sqlite3MemFree(void *pPrior){ return; }
  31. static void *sqlite3MemRealloc(void *pPrior, int nByte){ return 0; }
  32. static int sqlite3MemSize(void *pPrior){ return 0; }
  33. static int sqlite3MemRoundup(int n){ return n; }
  34. static int sqlite3MemInit(void *NotUsed){ return SQLITE_OK; }
  35. static void sqlite3MemShutdown(void *NotUsed){ return; }
  36. /*
  37. ** This routine is the only routine in this file with external linkage.
  38. **
  39. ** Populate the low-level memory allocation function pointers in
  40. ** sqlite3GlobalConfig.m with pointers to the routines in this file.
  41. */
  42. void sqlite3MemSetDefault(void){
  43. static const sqlite3_mem_methods defaultMethods = {
  44. sqlite3MemMalloc,
  45. sqlite3MemFree,
  46. sqlite3MemRealloc,
  47. sqlite3MemSize,
  48. sqlite3MemRoundup,
  49. sqlite3MemInit,
  50. sqlite3MemShutdown,
  51. 0
  52. };
  53. sqlite3_config(SQLITE_CONFIG_MALLOC, &defaultMethods);
  54. }
  55. #endif /* SQLITE_ZERO_MALLOC */