Commit 65e61d57 authored by Jan Ziak's avatar Jan Ziak Committed by Russ Cox

runtime: add (unused for now) gc field to type information

R=rsc
CC=golang-dev
https://golang.org/cl/6255074
parent 322057cb
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment