~flier-lu/libmemcached/win32-vs2008

« back to all changes in this revision

Viewing changes to libmemcached/allocators.c

  • Committer: Flier Lu
  • Date: 2011-01-07 02:29:07 UTC
  • Revision ID: flier.lu@gmail.com-20110107022907-fins0mwtkf582xgu
use pointer instead of reference to pass allocator

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
 
24
24
void *_libmemcached_calloc(const memcached_st *ptr, size_t nelem, size_t size, void *context)
25
25
{
26
 
  if (ptr->allocators.malloc != _libmemcached_malloc)
 
26
  if (ptr->allocators->malloc != _libmemcached_malloc)
27
27
  {
28
28
     void *ret = _libmemcached_malloc(ptr, nelem * size, context);
29
29
     if (ret != NULL) 
50
50
 
51
51
static struct _allocators_st *global_default_allocator = NULL;
52
52
 
53
 
struct _allocators_st memcached_allocators_return_default(void)
 
53
struct _allocators_st *memcached_allocators_return_default(void)
54
54
{  
55
55
  if (global_default_allocator == NULL)
56
56
    global_default_allocator = create_global_default_allocator();
57
57
 
58
 
  return *global_default_allocator;
 
58
  return global_default_allocator;
59
59
}
60
60
 
61
61
memcached_return_t memcached_set_memory_allocators(memcached_st *ptr,
76
76
  }
77
77
  else
78
78
  {
79
 
    ptr->allocators.malloc= mem_malloc;
80
 
    ptr->allocators.free= mem_free;
81
 
    ptr->allocators.realloc= mem_realloc;
82
 
    ptr->allocators.calloc= mem_calloc;
83
 
    ptr->allocators.context= context;
 
79
    ptr->allocators->malloc= mem_malloc;
 
80
    ptr->allocators->free= mem_free;
 
81
    ptr->allocators->realloc= mem_realloc;
 
82
    ptr->allocators->calloc= mem_calloc;
 
83
    ptr->allocators->context= context;
84
84
  }
85
85
 
86
86
  return MEMCACHED_SUCCESS;
88
88
 
89
89
void *memcached_get_memory_allocators_context(const memcached_st *ptr)
90
90
{
91
 
  return ptr->allocators.context;
 
91
  return ptr->allocators->context;
92
92
}
93
93
 
94
94
void memcached_get_memory_allocators(const memcached_st *ptr,
97
97
                                     memcached_realloc_fn *mem_realloc,
98
98
                                     memcached_calloc_fn *mem_calloc)
99
99
{
100
 
   *mem_malloc= ptr->allocators.malloc;
101
 
   *mem_free= ptr->allocators.free;
102
 
   *mem_realloc= ptr->allocators.realloc;
103
 
   *mem_calloc= ptr->allocators.calloc;
 
100
   *mem_malloc= ptr->allocators->malloc;
 
101
   *mem_free= ptr->allocators->free;
 
102
   *mem_realloc= ptr->allocators->realloc;
 
103
   *mem_calloc= ptr->allocators->calloc;
104
104
}