コード例 #1
0
ファイル: zslice_windows_amd64.c プロジェクト: ader1990/go
static void 
makeslice1 ( SliceType *t , intgo len , intgo cap , Slice *ret ) 
{ 
ret->len = len; 
ret->cap = cap; 
ret->array = runtime·cnewarray ( t->elem , cap ) ; 
} 
コード例 #2
0
void
reflect·unsafe_NewArray(Type* t, intgo n, byte* ret)
{
#line 581 "/home/pi/go_build/hg/go/src/pkg/runtime/iface.goc"

	ret = runtime·cnewarray(t, n);
	FLUSH(&ret);
}
コード例 #3
0
ファイル: ziface_linux_amd64.c プロジェクト: rosrad/go-rep
void
reflect·unsafe_NewArray(Type* t, intgo n, byte* ret)
{
	ret = 0;
	FLUSH(&ret);
#line 595 "/home/14/ren/source/golang/go/src/pkg/runtime/iface.goc"

	ret = runtime·cnewarray(t, n);
	FLUSH(&ret);
}
コード例 #4
0
ファイル: ziface_linux_amd64.c プロジェクト: luoguoling/go
void
reflect·unsafe_NewArray(Type* t, intgo n, byte* ret)
{
	ret = 0;
	FLUSH(&ret);
#line 610 "/tmp/makerelease197226928/go/src/pkg/runtime/iface.goc"

	ret = runtime·cnewarray(t, n);
	FLUSH(&ret);
}
コード例 #5
0
static void 
hash_init ( MapType *t , Hmap *h , uint32 hint ) 
{ 
uint8 B; 
byte *buckets; 
uintptr keysize , valuesize , bucketsize; 
uint8 flags; 
#line 98 "C:\Users\gopher\AppData\Local\Temp\1\makerelease745458658\go\src\pkg\runtime\hashmap.goc"
flags = 0; 
#line 101 "C:\Users\gopher\AppData\Local\Temp\1\makerelease745458658\go\src\pkg\runtime\hashmap.goc"
keysize = t->key->size; 
if ( keysize > MAXKEYSIZE ) { 
flags |= IndirectKey; 
keysize = sizeof ( byte* ) ; 
} 
valuesize = t->elem->size; 
if ( valuesize > MAXVALUESIZE ) { 
flags |= IndirectValue; 
valuesize = sizeof ( byte* ) ; 
} 
bucketsize = offsetof ( Bucket , data[0] ) + ( keysize + valuesize ) * BUCKETSIZE; 
if ( bucketsize != t->bucket->size ) { 
runtime·printf ( "runtime: bucketsize=%p but t->bucket->size=%p; t=%S\n" , bucketsize , t->bucket->size , *t->string ) ; 
runtime·throw ( "bucketsize wrong" ) ; 
} 
#line 119 "C:\Users\gopher\AppData\Local\Temp\1\makerelease745458658\go\src\pkg\runtime\hashmap.goc"
if ( t->key->align > BUCKETSIZE ) 
runtime·throw ( "key align too big" ) ; 
if ( t->elem->align > BUCKETSIZE ) 
runtime·throw ( "value align too big" ) ; 
if ( t->key->size % t->key->align != 0 ) 
runtime·throw ( "key size not a multiple of key align" ) ; 
if ( t->elem->size % t->elem->align != 0 ) 
runtime·throw ( "value size not a multiple of value align" ) ; 
if ( BUCKETSIZE < 8 ) 
runtime·throw ( "bucketsize too small for proper alignment" ) ; 
if ( ( offsetof ( Bucket , data[0] ) & ( t->key->align-1 ) ) != 0 ) 
runtime·throw ( "need padding in bucket (key)" ) ; 
if ( ( offsetof ( Bucket , data[0] ) & ( t->elem->align-1 ) ) != 0 ) 
runtime·throw ( "need padding in bucket (value)" ) ; 
#line 135 "C:\Users\gopher\AppData\Local\Temp\1\makerelease745458658\go\src\pkg\runtime\hashmap.goc"
B = 0; 
while ( hint > BUCKETSIZE && hint > LOAD * ( ( uintptr ) 1 << B ) ) 
B++; 
#line 141 "C:\Users\gopher\AppData\Local\Temp\1\makerelease745458658\go\src\pkg\runtime\hashmap.goc"
if ( checkgc ) mstats.next_gc = mstats.heap_alloc; 
if ( B == 0 ) { 
#line 144 "C:\Users\gopher\AppData\Local\Temp\1\makerelease745458658\go\src\pkg\runtime\hashmap.goc"
buckets = nil; 
} else { 
buckets = runtime·cnewarray ( t->bucket , ( uintptr ) 1 << B ) ; 
} 
#line 150 "C:\Users\gopher\AppData\Local\Temp\1\makerelease745458658\go\src\pkg\runtime\hashmap.goc"
h->count = 0; 
h->B = B; 
h->flags = flags; 
h->keysize = keysize; 
h->valuesize = valuesize; 
h->bucketsize = bucketsize; 
h->hash0 = runtime·fastrand1 ( ) ; 
h->buckets = buckets; 
h->oldbuckets = nil; 
h->nevacuate = 0; 
if ( docheck ) 
check ( t , h ) ; 
} 
コード例 #6
0
ファイル: iface.c プロジェクト: 29decibel/golang
void
reflect·unsafe_NewArray(Type *t, intgo n, void *ret)
{
	ret = runtime·cnewarray(t, n);
	FLUSH(&ret);
}