Advanced search
Evgenij LegotskojFeb. 2, 2016, 11:10 a.m.

QMLQML - Lesson 023. The hunt for bugs in the transmission pointer to QObject in QML

Qt, QML, указатель, JavaScriptOwnership, pointer, bug

One of the most vile and little predictable bugs are those that arise in an uncertain time. Among these include a bug that appears when the pointer is transmitted to the QObject in QML layer. The problem is that if there is no parent QObject, the transmission layer occurs in QML object change of ownership, that is, it is set JavaScriptOwnership. As a result, when the QML layer lost all references to this object, it will be removed garbage collector QML. Accordingly, all references in C++ layer will be non-valid. And the app when trying to appeal to these links will collapse in silence, without saying anything about the cause of the collapse.

Speaking of response uncertainty bug, it should be noted that this uncertainty stems from the time of garbage collection. In a typical embodiment, the time may come when the program a couple of gigabytes of memory dine or when the memory is not enough, and it will be available by performing garbage collection. That is, the application can run without problems for a long time without causing a bug, and it is even possible to go through several versions before the bug will manifest itself at any user who decides to report it to the developers.

It is worth noting that this rule will not be applied to the objects declared as Q_PROPERTY .

But we can use QML function gc() to show the problem, which will accelerate the garbage collection.

Timeweb

Let me recommend you the excellent hosting on which EVILEG is located.

For many years, Timeweb has been proving his stability.

For projects on Django I recommend VDS hosting

View Hosting
p
  • pstMem
  • Nov. 28, 2020, 3:34 a.m.

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:70points,
  • Rating points1
p
  • pstMem
  • Nov. 27, 2020, 11:22 a.m.

C++ - Тест 003. Условия и циклы

  • Result:64points,
  • Rating points-1
q
  • qwerty
  • Nov. 27, 2020, 7:29 a.m.

C++ - Тест 003. Условия и циклы

  • Result:42points,
  • Rating points-8
Last comments
VR

QML - Lesson 016. SQLite database and the working with it in QML Qt

Помогите, пожалуйста. У меня похожая задача, но я в qml слой долен передать не чистый запрос, а со сложной обработкой, поэтому у меня в С++ слое есть иерархия классов, которая имитирует бд и зап…
e
  • eviza
  • Nov. 16, 2020, 4:32 a.m.

Qt/C++ - Tutorial 083. Creating a dynamic library and connecting it to another project

здравствуйте! при компиляции библиотеки выскакивает окно особая программа( не удалось найти программу, укажите путь к ней), и в папке debug создается файл .dll, а .lib нет. подскажите…
IB

Data encryption by RSA algorithm in Qt with public and private keys without binding to OpenSSL

Библиотека подключилась нормально, только на выводе из первого примера выходит пустое сообщение, вместо "test message" просто "". Никаких ошибок не выдает.
VS

Qt WinAPI - Lesson 002. How to make win installer for Qt apllication?

Можно ли как-то однозначно (не проверяя) выяснить, запустится ли программа в windows 7? И как быть с разрядностью уже и просто в w10 (32\64)?
DT

Django - Tutorial 036. How to add authentication through social networks. VKontakte

Возможно, автор прочитает. Делал авторизацию с помощью ВК по книге Дронова. Выдает ошибку "Backend not found". Стал гуглить, нашел вашу статью, вроде почти то же самое (оно и понятно, документа…
Now discuss on the forum

QSqlTableModel - Как добавить картинки в таблицу, чтобы они отражались в диалоговом окне, но не были частью модели

Ну тогда в этом столбце указывайте пути на несколько картинок
s
  • solmik
  • Nov. 27, 2020, 12:44 p.m.

Обращение к ячейке таблицы

Спасибо, разобрался, у меня получилось немного не так, таблица создавалась в Qt Creator, рядом с таблицей поставил кнопку и вот слот обработки сигнала этой кнопки: void MainWindow::on…
m

Установка OpenSSL с QT Windows

К продолжению темы в QT 5.15.1 появились уже готовые libeay32.dll и ssleay32.dll на машине сборки все работает. На целевую машину в папку с exe подкидываю libeay32.dll и ssleay32.dll результата…
DK

QStyledItemDelegate не изменяются данные

Привет. Редактирую ячейку, нажимаю enter, либо просто кликаю на др место, но введенные данные возвращаются к тем, что были до редактирования. К примеру, меняю дату: 01.01.2000 было, редактирую 0…
m

Отправка JSON

Спасибо!
About
Services
© EVILEG 2015-2020
Recommend hosting TIMEWEB