QSA の参照オブジェクトの削除に問題があります。コンストラクターで、私は書いた:
QSProject * project = {initialization of QSProject}
MyWrapper * wrapper = new MyWrapper; // MyWrapper is QObject's child. It comes without parent here
project->addObject(wrapper);
私は記述子に書いた:
project->clearObjects();
delete project;
delete wrapper;
このコードは、デストラクタの実行時にセグメンテーション違反を引き起こします。まさに、ラッパーを削除しようとしているときです。
私はいくつかの調査を行いましたが、次のことを知っています。
- QSProject は「子オブジェクト」を削除しないため、これは「二重削除」の問題ではありません
- コンストラクターで QSProject にラッパーを追加しないと、うまく機能します。
- 記述子のラッパーを削除しないと、うまく機能します (ただし、メモリ リークが発生します)。
調子はどう?