MCPcopy Create free account
hub / github.com/google/gapid / declareTypes

Method declareTypes

gapil/compiler/types.go:71–139  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

69type memLayoutKey string
70
71func (c *C) declareTypes() {
72 c.T.targetABI = c.Settings.TargetABI
73
74 c.T.Types = c.M.Types
75 c.T.Ctx = c.T.DeclareStruct("context")
76 c.T.CtxPtr = c.T.Pointer(c.T.Ctx)
77 c.T.Globals = c.T.DeclareStruct("globals")
78 c.T.GlobalsPtr = c.T.Pointer(c.T.Globals)
79 c.T.Pool = c.T.TypeOf(C.pool{})
80 c.T.PoolPtr = c.T.Pointer(c.T.Pool)
81 c.T.Sli = c.T.TypeOf(C.slice{})
82 c.T.Str = c.T.TypeOf(C.string{}).(*codegen.Struct)
83 c.T.StrPtr = c.T.Pointer(c.T.Str)
84 c.T.Uint8Ptr = c.T.Pointer(c.T.Uint8)
85 c.T.Any = c.T.TypeOf(C.gapil_any{}).(*codegen.Struct)
86 c.T.AnyPtr = c.T.Pointer(c.T.Any)
87 c.T.Msg = c.T.TypeOf(C.gapil_msg{}).(*codegen.Struct)
88 c.T.MsgPtr = c.T.Pointer(c.T.Msg)
89 c.T.MsgArg = c.T.TypeOf(C.gapil_msg_arg{}).(*codegen.Struct)
90 c.T.MsgArgPtr = c.T.Pointer(c.T.MsgArg)
91 c.T.RTTI = c.T.TypeOf(C.gapil_rtti{}).(*codegen.Struct)
92 c.T.Arena = c.T.DeclareStruct("arena")
93 c.T.ArenaPtr = c.T.Pointer(c.T.Arena)
94 c.T.VoidPtr = c.T.Pointer(c.T.Void)
95 c.T.VoidPtrPtr = c.T.Pointer(c.T.VoidPtr)
96 c.T.Buf = c.T.TypeOf(C.buffer{})
97 c.T.BufPtr = c.T.Pointer(c.T.Buf)
98 c.T.Maps = map[*semantic.Map]*MapInfo{}
99 c.T.CmdParams = map[*semantic.Function]*codegen.Struct{}
100 c.T.DataAccess = c.T.Enum("gapil_data_access")
101 c.T.target = map[semantic.Type]codegen.Type{}
102 c.T.storage = map[memLayoutKey]*StorageTypes{}
103 c.T.captureToTarget = map[semantic.Type]*codegen.Function{}
104 c.T.targetToCapture = map[semantic.Type]*codegen.Function{}
105 c.T.mangled = map[codegen.Type]mangling.Type{}
106 c.T.rttis = map[semantic.Type]codegen.Global{}
107
108 for _, api := range c.APIs {
109 // Forward-declare all the class types.
110 for _, t := range api.Classes {
111 cgTy := c.T.DeclareStruct("T_" + t.Name())
112 c.T.target[t] = cgTy
113 }
114
115 // Forward-declare all the reference types.
116 for _, t := range api.References {
117 cgTy := c.T.DeclareStruct(t.Name())
118 c.T.target[t] = c.T.Pointer(cgTy)
119 }
120
121 // Forward-declare all the map types.
122 for _, t := range api.Maps {
123 cgTy := c.T.DeclareStruct(t.Name())
124 mapStrTy := cgTy
125 mapPtrTy := c.T.Pointer(mapStrTy)
126 c.T.target[t] = mapPtrTy
127 }
128

Callers 1

compileMethod · 0.95

Calls 5

DeclareStructMethod · 0.80
EnumMethod · 0.80
NameMethod · 0.65
PointerMethod · 0.45
TypeOfMethod · 0.45

Tested by

no test coverage detected