blob: 01bc2af31211056dd1d0386a2dc293648e68aa62 [file] [log] [blame]
Peter Collingbourne594c10d2014-11-27 00:12:26 +00001/* go-new.c -- the generic go new() function.
2
3 Copyright 2009 The Go Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style
5 license that can be found in the LICENSE file. */
6
7#include "go-alloc.h"
8#include "runtime.h"
9#include "arch.h"
10#include "malloc.h"
Andrew Wilkins6436a4a2016-03-15 05:36:43 +000011#include "go-type.h"
Peter Collingbourne594c10d2014-11-27 00:12:26 +000012
13void *
14__go_new (const struct __go_type_descriptor *td, uintptr_t size)
15{
16 return runtime_mallocgc (size,
17 (uintptr) td | TypeInfo_SingleObject,
Andrew Wilkins6436a4a2016-03-15 05:36:43 +000018 td->__code & GO_NO_POINTERS ? FlagNoScan : 0);
Peter Collingbourne594c10d2014-11-27 00:12:26 +000019}