dyn0dyn.c
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:1k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /******************************************************
  2. The dynamically allocated array
  3. (c) 1996 Innobase Oy
  4. Created 2/5/1996 Heikki Tuuri
  5. *******************************************************/
  6. #include "dyn0dyn.h"
  7. #ifdef UNIV_NONINL
  8. #include "dyn0dyn.ic"
  9. #endif
  10. /****************************************************************
  11. Adds a new block to a dyn array. */
  12. dyn_block_t*
  13. dyn_array_add_block(
  14. /*================*/
  15. /* out: created block */
  16. dyn_array_t* arr) /* in: dyn array */
  17. {
  18. mem_heap_t* heap;
  19. dyn_block_t* block;
  20. ut_ad(arr);
  21. ut_ad(arr->magic_n == DYN_BLOCK_MAGIC_N);
  22. if (arr->heap == NULL) {
  23. UT_LIST_INIT(arr->base);
  24. UT_LIST_ADD_FIRST(list, arr->base, arr);
  25. arr->heap = mem_heap_create(sizeof(dyn_block_t));
  26. }
  27. block = dyn_array_get_last_block(arr);
  28. block->used = block->used | DYN_BLOCK_FULL_FLAG;
  29. heap = arr->heap;
  30. block = mem_heap_alloc(heap, sizeof(dyn_block_t));
  31. block->used = 0;
  32. UT_LIST_ADD_LAST(list, arr->base, block);
  33. return(block);
  34. }