![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| vadiml |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 27.7.2007 Репутация: 5 Всего: 7 |
есть perl объект, который является blessed ссылкой на C++ класс.
В нём вызывается функция, в которой один из возвращаемых параметров -- указатель на другой С++ класс (или даже этот, что всё равно). Как узнать (где посмотреть), есть ли уже blessed ссылка на этот возвращаемый класс или это новый. Проблема в том, что если будет 2 разных перл-ссылки на 1 С++ класс, то перл вызывает деструктор для них 2 раза, и после второго раза, соответственно, выскакивает "Ошибка сегментирования" например, есть C++ класс Application, который создается только 1 на программу (в нём есть static *self, и через него отслеживается уникальность класса на программу). Я могу в любом месте вызвать static функцию app(), которая вернет self, для этой функции пишется xs:
на что я получу:
но уже имея ссылку на класс Application (например Application=SCALAR(0xa021d20) ) я, вызвав эту функцию, получу новую ссылку Application=SCALAR(0xa021d32) хотя обе они являются одним и тем же C++ классом а на выходе из программы я получу ошибку сегментирования, т.к. перл вызовет DESTROY 2 раза, т.е. для каждой ссылки |
||||
|
|||||
| vadiml |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 27.7.2007 Репутация: 5 Всего: 7 |
возможно наиболее близкое из того, что мне надо -- это stash
но как там получить нужно мне я не понял наверное лучше завести под это дело хеш на уровне XS (т.е. map) |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |