УПРАВЛЕНИЕ ДЕСКРИПТОРОМ ТИПА ДЛЯ ЗАМОРОЖЕННЫХ ОБЪЕКТОВ

1. Компьютерный программный продукт, содержащий один или более машиночитаемых носителей (104), на которых хранится исполняемый модуль (220), причем исполняемый модуль содержит:
замороженный объект (222), который является экземпляром типа, канонически описываемого каноническим дескриптором (211) типа, подчиняющимся набору правил канонизации;
дополнительный дескриптор (221) типа, который не идентичен каноническому дескриптору типу, но который также служит в качестве дескриптора типа для замороженного объекта, по меньшей мере для некоторых из операций, которые используют дескрипторы типа для упомянутого типа;
при этом замороженный объект прямо или косвенно связан с дополнительным дескриптором типа и каноническим дескриптором типа.
2. Компьютерный программный продукт по п.1, в котором канонический дескриптор типа не присутствует внутри исполняемого модуля.
3. Компьютерный программный продукт по п.2, в котором канонический дескриптор типа присутствует в компьютерном программном продукте.
4. Компьютерный программный продукт по п.1, в котором замороженный объект связан с дополнительным дескриптором типа путем включения указателя, который указывает на дополнительный дескриптор типа.
5. Компьютерный программный продукт по п.1, в котором компонент косвенной связи - это компонент, в который может производиться запись во время выполнения, чтобы таким образом предписать компоненту косвенной связи указывать на канонизированный дескриптор типа, не приводя к тому, чтобы компонент косвенной связи или его часть становились частными.
6. Компьютерный программный продукт по п.1, в котором компонент косвенной связи - это компонент, в который может производиться запись один раз во время выполнения, чтобы таким образом предписать компоненту косвенной связи указывать на канонизированный дескриптор типа, не приводя к тому, чтобы компонент косвенной связи или его часть становились частными.
7. Компьютерный программный продукт по п.1, в котором компонент косвенной связи является адресной таблицей импорта.
8. Способ (300) выполнения одной или более операций над типом, используя множество дескрипторов типа (211, 221), соответствующих замороженному объекту (222), причем это множество дескрипторов типа включает в себя канонический дескриптор (211) типа, подчиняющийся набору правил канонизации, при этом способ содержит:
для первого набора из одной или более операций действие определения (301) того, что дополнительного дескриптора (221) типа будет достаточно для выполнения операции, и действие использования (302) дополнительного дескриптора типа, а не канонического дескриптора типа, для выполнения операции; и
для второго набора из одной или более операций действие определения (301) того, что дополнительного дескриптора типа не будет достаточно для выполнения операции, действие использования (303) дополнительного дескриптора типа для доступа к каноническому дескриптору типа и действие использования (304) канонического дескриптора типа для выполнения операции.
9. Способ по п.8, в котором действие использования дополнительного дескриптора типа для доступа к каноническому дескриптору типа содержит:
действие доступа к указателю внутри дополнительного дескриптора типа, причем этот указатель указывает прямо или косвенно на канонический дескриптор типа.
10. Способ по п.8, в котором действие использования дополнительного дескриптора типа для доступа к каноническому дескриптору типа содержит:
действие доступа к указателю внутри дополнительного дескриптора типа, причем этот указатель указывает прямо или косвенно на компонент косвенной связи, который содержит указатель, который указывает прямо или косвенно на канонический дескриптор типа; и
действие использования указателя, который находится в компоненте косвенной связи, для доступа к каноническому дескриптору типа.
11. Способ по п.10, дополнительно содержащий действие подготовки к использованию компонента косвенной связи для обеспечения доступа к каноническому дескриптору типа.
12. Способ по п.11, в котором действие подготовки содержит:
действие определения типа, который соответствует компоненту косвенной связи,
действие определения того, что тип соответствует каноническому дескриптору типа; и
действие изменения компонента косвенной связи так, чтобы он включал в себя указатель на канонический дескриптор типа.
13. Способ по п.8, в котором по меньшей мере одна из второго набора операций включает сравнение типа замороженного объекта с типом другого объекта.
14. Способ по п.8, в котором по меньшей мере одна из первого набора операций требует, чтобы между замороженным объектом и дескриптором типа, который используется для выполнения операции, был только один уровень косвенной связи.
15. Способ по п.8, в котором по меньшей мере одна из первого набора операций является операцией виртуального вызова.