@@ -37,15 +37,13 @@ void memory_region::dec_alloc() {
37
37
void memory_region::free (void *mem) {
38
38
// printf("free: ptr 0x%" PRIxPTR" region=%p\n", (uintptr_t) mem, this);
39
39
if (!mem) { return ; }
40
- if (_synchronized) { _lock.lock (); }
41
40
alloc_header *alloc = get_header (mem);
42
41
assert (alloc->magic == MAGIC);
43
42
if (_live_allocations < 1 ) {
44
43
_srv->fatal (" live_allocs < 1" , __FILE__, __LINE__, " " );
45
44
}
46
45
release_alloc (mem);
47
46
_srv->free (alloc);
48
- if (_synchronized) { _lock.unlock (); }
49
47
}
50
48
51
49
void *
@@ -78,7 +76,6 @@ memory_region::realloc(void *mem, size_t size) {
78
76
79
77
void *
80
78
memory_region::malloc (size_t size, const char *tag, bool zero) {
81
- if (_synchronized) { _lock.lock (); }
82
79
size_t old_size = size;
83
80
size += sizeof (alloc_header);
84
81
alloc_header *mem = (alloc_header *)_srv->malloc (size);
@@ -91,7 +88,6 @@ memory_region::malloc(size_t size, const char *tag, bool zero) {
91
88
memset (mem->data , 0 , old_size);
92
89
}
93
90
94
- if (_synchronized) { _lock.unlock (); }
95
91
return mem->data ;
96
92
}
97
93
@@ -145,6 +141,7 @@ memory_region::release_alloc(void *mem) {
145
141
assert (alloc->magic == MAGIC);
146
142
147
143
#ifdef TRACK_ALLOCATIONS
144
+ if (_synchronized) { _lock.lock (); }
148
145
if (_allocation_list[alloc->index ] != alloc) {
149
146
printf (" free: ptr 0x%" PRIxPTR " (%s) is not in allocation_list\n " ,
150
147
(uintptr_t ) &alloc->data , alloc->tag );
@@ -155,6 +152,7 @@ memory_region::release_alloc(void *mem) {
155
152
_allocation_list[alloc->index ] = NULL ;
156
153
alloc->index = -1 ;
157
154
}
155
+ if (_synchronized) { _lock.unlock (); }
158
156
#endif
159
157
dec_alloc ();
160
158
}
@@ -164,7 +162,9 @@ memory_region::claim_alloc(void *mem) {
164
162
alloc_header *alloc = get_header (mem);
165
163
assert (alloc->magic == MAGIC);
166
164
#ifdef TRACK_ALLOCATIONS
165
+ if (_synchronized) { _lock.lock (); }
167
166
alloc->index = _allocation_list.append (alloc);
167
+ if (_synchronized) { _lock.unlock (); }
168
168
#endif
169
169
add_alloc ();
170
170
}
0 commit comments