re PR go/61620 (FAIL: go.test/test/fixedbugs/bug242.go execution, -O2 -g)
PR go/61620 runtime: Don't free tiny blocks in map deletion. The memory allocator now has a special case for tiny blocks (smaller than 16 bytes) and they can not be explicitly freed. From-SVN: r212233
This commit is contained in:
parent
513c5c74ce
commit
9490fda67a
1 changed files with 3 additions and 1 deletions
|
@ -8,6 +8,7 @@
|
|||
#include <stdlib.h>
|
||||
|
||||
#include "runtime.h"
|
||||
#include "malloc.h"
|
||||
#include "go-alloc.h"
|
||||
#include "go-assert.h"
|
||||
#include "map.h"
|
||||
|
@ -47,7 +48,8 @@ __go_map_delete (struct __go_map *map, const void *key)
|
|||
if (equalfn (key, entry + key_offset, key_size))
|
||||
{
|
||||
*pentry = *(void **) entry;
|
||||
__go_free (entry);
|
||||
if (descriptor->__entry_size >= TinySize)
|
||||
__go_free (entry);
|
||||
map->__element_count -= 1;
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue