mirror of
https://github.com/golang/go
synced 2024-11-19 20:54:39 -07:00
runtime: add (unused for now) gc field to type information
R=rsc CC=golang-dev https://golang.org/cl/6255074
This commit is contained in:
parent
322057cbfc
commit
65e61d5770
@ -546,15 +546,17 @@ dcommontype(Sym *s, int ot, Type *t)
|
||||
// ../../pkg/reflect/type.go:/^type.commonType
|
||||
// actual type structure
|
||||
// type commonType struct {
|
||||
// size uintptr;
|
||||
// hash uint32;
|
||||
// alg uint8;
|
||||
// align uint8;
|
||||
// fieldAlign uint8;
|
||||
// kind uint8;
|
||||
// string *string;
|
||||
// *extraType;
|
||||
// ptrToThis *Type
|
||||
// size uintptr
|
||||
// hash uint32
|
||||
// _ uint8
|
||||
// align uint8
|
||||
// fieldAlign uint8
|
||||
// kind uint8
|
||||
// alg unsafe.Pointer
|
||||
// gc unsafe.Pointer
|
||||
// string *string
|
||||
// *extraType
|
||||
// ptrToThis *Type
|
||||
// }
|
||||
ot = duintptr(s, ot, t->width);
|
||||
ot = duint32(s, ot, typehash(t));
|
||||
@ -579,6 +581,7 @@ dcommontype(Sym *s, int ot, Type *t)
|
||||
ot = dsymptr(s, ot, algarray, alg*sizeofAlg);
|
||||
else
|
||||
ot = dsymptr(s, ot, algsym, 0);
|
||||
ot = duintptr(s, ot, 0); // gc
|
||||
p = smprint("%-uT", t);
|
||||
//print("dcommontype: %s\n", p);
|
||||
ot = dgostringptr(s, ot, p); // string
|
||||
|
@ -775,7 +775,7 @@ enum {
|
||||
KindNoPointers = 1<<7,
|
||||
|
||||
// size of Type interface header + CommonType structure.
|
||||
CommonSize = 2*PtrSize+ 5*PtrSize + 8,
|
||||
CommonSize = 2*PtrSize+ 6*PtrSize + 8,
|
||||
};
|
||||
|
||||
static Reloc*
|
||||
|
@ -244,6 +244,7 @@ type commonType struct {
|
||||
fieldAlign uint8 // alignment of struct field with this type
|
||||
kind uint8 // enumeration for C
|
||||
alg *uintptr // algorithm table (../runtime/runtime.h:/Alg)
|
||||
gc uintptr // garbage collection data
|
||||
string *string // string form; unnecessary but undeniably useful
|
||||
*uncommonType // (relatively) uncommon fields
|
||||
ptrToThis *runtimeType // pointer to this type, if used in binary or has methods
|
||||
|
@ -21,7 +21,8 @@ type commonType struct {
|
||||
align uint8
|
||||
fieldAlign uint8
|
||||
kind uint8
|
||||
alg *uintptr
|
||||
alg unsafe.Pointer
|
||||
gc unsafe.Pointer
|
||||
string *string
|
||||
*uncommonType
|
||||
ptrToThis *interface{}
|
||||
|
@ -28,6 +28,7 @@ struct CommonType
|
||||
uint8 fieldAlign;
|
||||
uint8 kind;
|
||||
Alg *alg;
|
||||
void *gc;
|
||||
String *string;
|
||||
UncommonType *x;
|
||||
Type *ptrto;
|
||||
|
Loading…
Reference in New Issue
Block a user