Попытка выполнить небольшой скрипт с вложенным QObject в качестве параметра.
QJSEngine jsEngine;
QJSValue arg = jsEngine.newQObject(child); // Child it's subclassed QObject
QJSValue function = jsEngine.evaluate(m_childRestriction);
QJSValue result = function.call(QJSValueList() << arg);
При уничтожении jsEngine он вызывает delete для моего дочернего объекта (так как newQObject создает его с помощью JavaScriptOwnership). Как этого избежать, как сменить владельца на arg?
Сценарий прост:
function(device) {
return device.m_place >=0 && device.m_place < 16;
}
UPD:
Можно позвонить QQmlEngine::setObjectOwnership(child, QQmlEngine::CppOwnership);
для объекта, как это статическая функция. Это просто не понятно из справки. Думаю, что это должно быть в QJSEngine
также.
Можно вызвать QQmlEngine :: setObjectOwnership (child, QQmlEngine :: CppOwnership); для объекта, как это статическая функция. Это просто не понятно из справки. Думаю, это должно быть и в QJSEngine.