Russian Qt Forum
Ноябрь 22, 2024, 23:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: QtDockTile - кроссплатформенный док  (Прочитано 20626 раз)
Gorthauer
Гость
« : Январь 08, 2012, 01:34 »

Ссылка на статью на Хабре

Либой вполне можно уже пользоваться. Но хотелось бы от местного сообщества некоторой помощи: во первых просто хочу, чтобы народ её протестировал, во вторых нужна помощь с доками и их переводом на инглишь. В третьих есть ещё dockmanager. Есть желающие запилить?
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #1 : Январь 08, 2012, 01:44 »

Не собирается нихрена
Записан
Gorthauer
Гость
« Ответ #2 : Январь 08, 2012, 02:48 »

install читали? Субмодуль инитили? И это, лог где? Я не телепат!
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #3 : Январь 08, 2012, 10:07 »

Gorthauer
Конечно не читал. Конечно не инитил. Я вообще зипник качал.

А вам советую не блистать знаниями симейка и гита, а сделать нормальный прошник, благо на кутях пишите.
Представляю пос-ть действий для левого юзера - поставьте цмейк, поставьте гит, выполните 200 консольных команд и получите собранную либу из 300 строк кода. Бугагашенька.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #4 : Январь 08, 2012, 10:11 »

Кстатати поправьте меня, но в проекте нет файла инстолл, а ридми пустой.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #5 : Январь 08, 2012, 10:14 »

В докменеджере утекает плагинлоадер
Записан
Gorthauer
Гость
« Ответ #6 : Январь 08, 2012, 18:32 »

zip текущей ревизии вообще бесполезно качать, ибо гит не умеет субмодули в зипы добавлять, как релиз будет, так сделаю нормальный тарбол, а пока мне нужны как раз те ребята, которые ни гита ни цмака не боятся. Прошник делать пока не буду ибо цмак банально удобнее.

В докменеджере утекает плагинлоадер
Это с чего это вдруг? Он удаляется вместе с менеджером ибо заключен вовнутрь QScopedPointer'а.
Записан
Gorthauer
Гость
« Ответ #7 : Январь 08, 2012, 18:33 »

Кстатати поправьте меня, но в проекте нет файла инстолл, а ридми пустой.
Там вики есть на гитхабе. Там есть ридми, правда русское и инсталл, который сейчас сдублировал в корне проекта. Вот с переводом хорошим ридмишки и хотелось бы помощи или совета хотя бы.
Записан
BRE
Гость
« Ответ #8 : Январь 08, 2012, 19:06 »

Исходники не смотрел, но в статье глаз зацепился за:
Код
C++ (Qt)
const char *utf8String = badge.toUtf8().constData();
 
Думаю этот же код и в библиотеке.

Так делать нельзя. В следующей строке указатель будет ссылаться на разрушенный буфер.
Несколько раз обсуждали на форуме.
Записан
andrew.k
Гость
« Ответ #9 : Январь 08, 2012, 20:22 »

Исходники не смотрел, но в статье глаз зацепился за:
Код
C++ (Qt)
const char *utf8String = badge.toUtf8().constData();
 
Думаю этот же код и в библиотеке.

Так делать нельзя. В следующей строке указатель будет ссылаться на разрушенный буфер.
Несколько раз обсуждали на форуме.

Почему нельзя то?

The pointer remains valid as long as the byte array isn't reallocated or destroyed.
Записан
Gorthauer
Гость
« Ответ #10 : Январь 08, 2012, 20:26 »

Исходники не смотрел, но в статье глаз зацепился за:
Код
C++ (Qt)
const char *utf8String = badge.toUtf8().constData();
 
Думаю этот же код и в библиотеке.

Так делать нельзя. В следующей строке указатель будет ссылаться на разрушенный буфер.
Несколько раз обсуждали на форуме.


Взято из сырцов Креатора и самое главное, что после посылки сообщения доку, все эти строки по выходу из области видимости очищаются. А если строчку из контекста вырывать, то конечно. В реализации для винды так вообще можно дохрена таких "утечек" найти.

ЗЫ
на досуге попробуйте подумать, что делает эта строчка
Код:
[cocoaString release];
« Последнее редактирование: Январь 08, 2012, 20:28 от Gorthauer » Записан
andrew.k
Гость
« Ответ #11 : Январь 08, 2012, 20:32 »

Исходники не смотрел, но в статье глаз зацепился за:
Код
C++ (Qt)
const char *utf8String = badge.toUtf8().constData();
 
Думаю этот же код и в библиотеке.

Так делать нельзя. В следующей строке указатель будет ссылаться на разрушенный буфер.
Несколько раз обсуждали на форуме.


Взято из сырцов Креатора и самое главное, что после посылки сообщения доку, все эти строки по выходу из области видимости очищаются. А если строчку из контекста вырывать, то конечно. В реализации для винды так вообще можно дохрена таких "утечек" найти.

ЗЫ
на досуге попробуйте подумать, что делает эта строчка
Код:
[cocoaString release];

Видимо поэтому он время от времени падает)

Дошло в чем дело. toUtf8() возвращает временный объект QByteArray ссылка на который никуда не сохраняется, а используется лишь вызов constData. Сразу после вызова объект будет разрушен. И указатель станет не валидным.

Значит и правда нельзя.
Записан
Gorthauer
Гость
« Ответ #12 : Январь 08, 2012, 20:39 »

Хех, а про QByteArray я уже проглядел, невнимательным был... Интересно, почему оно тогда в креаторе ни разу не падало?
Записан
BRE
Гость
« Ответ #13 : Январь 08, 2012, 20:42 »

Интересно, почему оно тогда в креаторе ни разу не падало?
Везло.
Освобожденный участок памяти никому в этот момент не отдавался, поэтому данные никто не затирал.
Записан
Gorthauer
Гость
« Ответ #14 : Январь 08, 2012, 20:50 »

Fixed.
Отправить что ли троллям патч. А то и там и там банальная невнимательность и везение %) Нда... иногда таки бывают грабли даже если берёшь код казалось бы из хорошего и проверенного источника и априори ему доверяешь не вчитываясь)
Записан
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.118 секунд. Запросов: 22.