Lines Matching full:class
1 # Runtime class
3 …Class` to store all necessary language independent information about class. Virtual table and regi…
5 …er to the managed class object (instance of `panda.Class` or other in case of plugin-related code)…
8 panda::Class *cls = obj->ClassAddr()->GetManagedObject();
11 … approach is that we need additional dereference to get `panda::Class` from mirror class and vice …
15 class Class : public ObjectHeader {
19 panda::Class klass_;
24 In this case layout of the `coretypes::Class` will be following:
27 mirror class (`coretypes::Class`) --------> +------------------+ <-+
29 | `Class Word` |-----+
32 panda class (`panda::Class`) ---------> +------------------+ <-|-+
38 Note: as `panda::Class` object has variable size it must be last in the mirror class.
40 Such layout allows to get pointer to the `panda::Class` object from the `coretypes::Class` one and …
43 auto *managed_class_obj = coretypes::Class::FromRuntimeClass(klass);
48 Where `coretypes::Class::FromRuntimeClass` and `coretypes::Class::GetRuntimeClass` are implemented …
53 class Class : public ObjectHeader {
56 panda::Class *GetRuntimeClass() {
61 return MEMBER_OFFSET(Class, klass_);
64 static Class *FromRuntimeClass(panda::Class *klass) {
65 … return reinterpret_cast<Class *>(reinterpret_cast<uintptr_t>(klass) - GetRuntimeClassOffset());
73 In common places where language context can be different we can use `panda::Class::GetManagedObject…
86 managed_class_obj = coretypes::Class::FromRuntimeClass(klass);