~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to mysys/my_malloc.cc

  • Committer: Monty Taylor
  • Date: 2008-12-07 23:42:51 UTC
  • mto: This revision was merged to the branch mainline in revision 670.
  • Revision ID: monty@inaugust.com-20081207234251-yxtbg06jpylwej29
Finally removed all of the my_malloc stuff.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Copyright (C) 2000 MySQL AB
2
 
 
3
 
   This program is free software; you can redistribute it and/or modify
4
 
   it under the terms of the GNU General Public License as published by
5
 
   the Free Software Foundation; version 2 of the License.
6
 
 
7
 
   This program is distributed in the hope that it will be useful,
8
 
   but WITHOUT ANY WARRANTY; without even the implied warranty of
9
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10
 
   GNU General Public License for more details.
11
 
 
12
 
   You should have received a copy of the GNU General Public License
13
 
   along with this program; if not, write to the Free Software
14
 
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
15
 
 
16
 
#include "mysys_priv.h"
17
 
#include "mysys_err.h"
18
 
#include <mystrings/m_string.h>
19
 
 
20
 
        /* My memory allocator */
21
 
 
22
 
void *my_malloc(size_t size, myf my_flags)
23
 
{
24
 
  void* point;
25
 
 
26
 
  if (!size)
27
 
    size=1;                                     /* Safety */
28
 
  if ((point = malloc(size)) == NULL)
29
 
  {
30
 
    my_errno=errno;
31
 
    if (my_flags & MY_FAE)
32
 
      error_handler_hook=fatal_error_handler_hook;
33
 
    if (my_flags & (MY_FAE+MY_WME))
34
 
      my_error(EE_OUTOFMEMORY, MYF(ME_BELL+ME_WAITTANG+ME_NOREFRESH),size);
35
 
    if (my_flags & MY_FAE)
36
 
      exit(1);
37
 
  }
38
 
  else if (my_flags & MY_ZEROFILL)
39
 
    memset(point, 0, size);
40
 
  return((void*) point);
41
 
} /* my_malloc */
42
 
 
43
 
 
44
 
        /* malloc and copy */
45
 
 
46
 
void* my_memdup(const void *from, size_t length, myf my_flags)
47
 
{
48
 
  void *ptr;
49
 
  if ((ptr= my_malloc(length,my_flags)) != 0)
50
 
    memcpy(ptr, from, length);
51
 
  return(ptr);
52
 
}
53
 
 
54
 
 
55
 
char *my_strdup(const char *from, myf my_flags)
56
 
{
57
 
  char *ptr;
58
 
  size_t length= strlen(from)+1;
59
 
  if ((ptr= (char*) my_malloc(length, my_flags)))
60
 
    memcpy(ptr, from, length);
61
 
  return(ptr);
62
 
}
63
 
 
64
 
 
65
 
char *my_strndup(const char *from, size_t length, myf my_flags)
66
 
{
67
 
  char *ptr;
68
 
  if ((ptr= (char*) my_malloc(length+1,my_flags)) != 0)
69
 
  {
70
 
    memcpy(ptr, from, length);
71
 
    ptr[length]=0;
72
 
  }
73
 
  return((char*) ptr);
74
 
}