Swig + tcl + c ++ (управление памятью) - PullRequest
0 голосов
/ 08 июня 2011

У меня есть процедура в tcl, которая снова вызывает метод c ++, используя интерфейс, созданный swig.Процедура возвращает список указателей.Я проверил владение одним элементом в Списке в tcl, используя

[lindex $listname 0] cget -thisown

, он возвращает 0 вместо 1.

1 Ответ

2 голосов
/ 08 июня 2011

Согласно документации SWIG по управлению памятью , указатели не принадлежат (привязка SWIG к) Tcl по умолчанию. Если SWIG ошибся, используйте операции -acquire / -disown, чтобы исправить это. Например:

[lindex $listname 0] -acquire

Будь осторожен! Неправильное управление памятью приведет к сбивающим с толку сбоям или утечкам памяти.

...