ut0mem.c
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:1k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /************************************************************************
  2. Memory primitives
  3. (c) 1994, 1995 Innobase Oy
  4. Created 5/11/1994 Heikki Tuuri
  5. *************************************************************************/
  6. #include "ut0mem.h"
  7. #ifdef UNIV_NONINL
  8. #include "ut0mem.ic"
  9. #endif
  10. #include "mem0mem.h"
  11. void*
  12. ut_malloc(ulint n)
  13. {
  14. void* ret;
  15. /*
  16. ret = VirtualAlloc(NULL, n, MEM_COMMIT, PAGE_READWRITE);
  17. */
  18. ret = malloc(n);
  19. if (ret == NULL) {
  20. fprintf(stderr,
  21. "Innobase: Fatal error: cannot allocate memory!n");
  22. fprintf(stderr,
  23. "Innobase: Cannot continue operation!n");
  24. fprintf(stderr,
  25. "Innobase: Check if you can increase the swap file of yourn");
  26. fprintf(stderr,
  27. "Innobase: operating system.n");
  28. exit(1);
  29. }
  30. return(ret);
  31. }
  32. /**************************************************************************
  33. Catenates two strings into newly allocated memory. The memory must be freed
  34. using mem_free. */
  35. char*
  36. ut_str_catenate(
  37. /*============*/
  38. /* out, own: catenated null-terminated string */
  39. char* str1, /* in: null-terminated string */
  40. char* str2) /* in: null-terminated string */
  41. {
  42. ulint len1;
  43. ulint len2;
  44. char* str;
  45. len1 = ut_strlen(str1);
  46. len2 = ut_strlen(str2);
  47. str = mem_alloc(len1 + len2 + 1);
  48. ut_memcpy(str, str1, len1);
  49. ut_memcpy(str + len1, str2, len2);
  50. str[len1 + len2] = '';
  51. return(str);
  52. }