ref: remove old docs variant
This commit is contained in:
@@ -1,21 +1,2 @@
|
||||
# Размещение объектов
|
||||
|
||||
Экземпляр класса во время исполнения представлен структурой объекта с массивом значений полей:
|
||||
|
||||
```
|
||||
typedef struct
|
||||
{
|
||||
fzl_value_t *values;
|
||||
size_t values_count;
|
||||
} fzl_vm_object_t;
|
||||
```
|
||||
|
||||
Поля получают последовательные индексы в порядке объявления.
|
||||
Таблица класса хранит имя поля, тип и `slot_index`.
|
||||
Поэтому `object.field` компилируется в `GET_FIELD` или `SET_FIELD` с числовым индексом.
|
||||
|
||||
Выражение `new ClassName` проверяет наличие класса и генерирует `ALLOC_OBJECT N`, где `N` — число полей.
|
||||
Сравнение объектов проверяет указатели.
|
||||
При уничтожении окружения освобождаются принадлежащие ему объекты и массивы их значений.
|
||||
|
||||
При возврате объекта из вложенного окружения `ESCAPE_OBJECT` переносит владение в родительское окружение.
|
||||
|
||||
Reference in New Issue
Block a user