1
0
mirror of https://github.com/golang/go synced 2024-10-02 16:28:34 -06: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:
Jan Ziak 2012-06-02 14:02:44 -04:00 committed by Russ Cox
parent 322057cbfc
commit 65e61d5770
5 changed files with 17 additions and 11 deletions

View File

@ -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

View File

@ -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*

View File

@ -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

View File

@ -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{}

View File

@ -28,6 +28,7 @@ struct CommonType
uint8 fieldAlign;
uint8 kind;
Alg *alg;
void *gc;
String *string;
UncommonType *x;
Type *ptrto;