Lines Matching full:class
1 # Runtime class
3 …Class` to store all necessary language independent information about classes. Virtual table and re…
5 … the managed class object (instance of `panda.Class` or `java.lang.Class` in case of Java, for exa…
8 panda::Class *cls = obj->ClassAddr()->GetManagedObject();
11 …exibility for the layout but causes additional dereferences to get panda::Class from mirror classe…
15 class Class : public ObjectHeader {
19 panda::Class klass_;
24 The layout of the `coretypes::Class` is as follows:
27 mirror class (`coretypes::Class`) --------> +------------------+ <-+
29 | `Class Word` |-----+
32 panda class (`panda::Class`) ---------> +------------------+ <-|-+
38 Note: The `panda::Class` object must be the last in the mirror class because it has variable size.
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);