Closed ghost closed 4 years ago
Нужны подробности.
У вас две ветки, например Один и Два. Обе они дочерние ветки для ветки Мастер, и находятся на одном уровне. Вы копируете ветку Два и вставляете ее в Один как подчиненную. Затем вы снова копируете ветку Два и вставляете ее ветку Один как подчиненную.
Я правильно понял последовательность действий?
Лучше всего сделать скринкаст и залить на ютубчик, там все подробности будут видны. Сделать это можно через SimpleScreenRecorder или через консольную утилиту recordmydesktop.
Нужны подробности.
У вас две ветки, например Один и Два. Обе они дочерние ветки для ветки Мастер, и находятся на одном уровне. Вы копируете ветку Два и вставляете ее в Один как подчиненную. Затем вы снова копируете ветку Два и вставляете ее ветку Один как подчиненную.
Я правильно понял последовательность действий?
Лучше всего сделать скринкаст и залить на ютубчик, там все подробности будут видны. Сделать это можно через SimpleScreenRecorder или через консольную утилиту recordmydesktop.
не совсем так, выложу ссылку на видео
Видео падения приложения: https://yadi.sk/i/nXbPXdx43CUutQ
Похоже это только с зашифрованными ветками происходит
Еще просьба включить отладочные сообщения в настройках, запустить MyTetra из консоли, добиться вылета и показать консольный выхлоп.
Непонятно из-за чего падает, то ли после копирования веток друг в друга. Сейчас еще в qtcreator в дебаге соберу и запущу, может там что-нибудь покажет...
В дебагере видно где падает https://yadi.sk/i/N2L9ValJ2t3JLA
Проблема скорее всего в строчке 1015 (на видео):
if(branch_clipboard_data_previos!=NULL) delete branch_clipboard_data_previos;
delete здесь не нужен и даже неверен, так как за его удаление отвечает объект cbuf.
И делает это он при вызове ф-й clear() или setMimeData(), что и делается ниже в коде (стр. 1031). Т.е. происходит удаление одного и того же указателя дважды.
Решение: удалить эту строку (1015).
Проблема скорее всего в строчке 1015
Да, я не понимал как Qt управляется с данным в буфере обмена, и код был некорректный. А фишка в том, что владение указателем на данные передается объекту буфера в момент вызова setMimeData().
Проблема исправлена в коммите 6465f6a2afca36dce7eac6b08a42cde7d3314597
OS Xubuntu 18.04 MyTetra 1.44.77 (experimental branch)
Первый копирую вставляю ветку всё нормально, следующий раз также нажимаю копировать приложение просто вылетает
Видео https://yadi.sk/i/nXbPXdx43CUutQ