33
33
#include <string.h>
34
34
#include "config.h"
35
35
36
+ #if defined(__sun )
37
+ #define PREFIX_SIZE sizeof(long long)
38
+ #else
39
+ #define PREFIX_SIZE sizeof(size_t)
40
+ #endif
41
+
36
42
static size_t used_memory = 0 ;
37
43
38
44
static void zmalloc_oom (size_t size ) {
@@ -43,16 +49,16 @@ static void zmalloc_oom(size_t size) {
43
49
}
44
50
45
51
void * zmalloc (size_t size ) {
46
- void * ptr = malloc (size + sizeof ( size_t ) );
52
+ void * ptr = malloc (size + PREFIX_SIZE );
47
53
48
54
if (!ptr ) zmalloc_oom (size );
49
55
#ifdef HAVE_MALLOC_SIZE
50
56
used_memory += redis_malloc_size (ptr );
51
57
return ptr ;
52
58
#else
53
59
* ((size_t * )ptr ) = size ;
54
- used_memory += size + sizeof ( size_t ) ;
55
- return (char * )ptr + sizeof ( size_t ) ;
60
+ used_memory += size + PREFIX_SIZE ;
61
+ return (char * )ptr + PREFIX_SIZE ;
56
62
#endif
57
63
}
58
64
@@ -73,15 +79,15 @@ void *zrealloc(void *ptr, size_t size) {
73
79
used_memory += redis_malloc_size (newptr );
74
80
return newptr ;
75
81
#else
76
- realptr = (char * )ptr - sizeof ( size_t ) ;
82
+ realptr = (char * )ptr - PREFIX_SIZE ;
77
83
oldsize = * ((size_t * )realptr );
78
- newptr = realloc (realptr ,size + sizeof ( size_t ) );
84
+ newptr = realloc (realptr ,size + PREFIX_SIZE );
79
85
if (!newptr ) zmalloc_oom (size );
80
86
81
87
* ((size_t * )newptr ) = size ;
82
88
used_memory -= oldsize ;
83
89
used_memory += size ;
84
- return (char * )newptr + sizeof ( size_t ) ;
90
+ return (char * )newptr + PREFIX_SIZE ;
85
91
#endif
86
92
}
87
93
@@ -96,9 +102,9 @@ void zfree(void *ptr) {
96
102
used_memory -= redis_malloc_size (ptr );
97
103
free (ptr );
98
104
#else
99
- realptr = (char * )ptr - sizeof ( size_t ) ;
105
+ realptr = (char * )ptr - PREFIX_SIZE ;
100
106
oldsize = * ((size_t * )realptr );
101
- used_memory -= oldsize + sizeof ( size_t ) ;
107
+ used_memory -= oldsize + PREFIX_SIZE ;
102
108
free (realptr );
103
109
#endif
104
110
}
0 commit comments