67a546ab45
As the removed comment states, if the package being compiled played certain tricks with pointers that looked like integers, the compiler might allocate space for new pointers unnecessarily. Since the type information on the heap is now precise, this logic can be moved to the runtime. Reviewed-on: https://go-review.googlesource.com/11581 From-SVN: r225757
20 lines
520 B
C
20 lines
520 B
C
/* go-new.c -- the generic go new() function.
|
|
|
|
Copyright 2009 The Go Authors. All rights reserved.
|
|
Use of this source code is governed by a BSD-style
|
|
license that can be found in the LICENSE file. */
|
|
|
|
#include "go-alloc.h"
|
|
#include "runtime.h"
|
|
#include "arch.h"
|
|
#include "malloc.h"
|
|
#include "go-type.h"
|
|
|
|
void *
|
|
__go_new (const struct __go_type_descriptor *td, uintptr_t size)
|
|
{
|
|
return runtime_mallocgc (size,
|
|
(uintptr) td | TypeInfo_SingleObject,
|
|
td->__code & GO_NO_POINTERS ? FlagNoScan : 0);
|
|
}
|