Linux
Нашёл!
Нашёл, откуда оно всё лезло!
Странно всё это…
Вспоминаю свои потуги несколько лет назад ковырнуть Delphi с добрым чувством. Как же там всё просто, логично и удобно. И как здесь всё…
А, не важно. Мне на этом чуде не программировать каждый день, а плагин дописать уже до того состояния, который я сам себе определил в самом начале работ 🙂
Ну, если ещё чего не вылезет, то сегодня-завтра релиз, ага 🙂
Не выходит цветочек каменный
Казалось бы – ну ругается плагин “g_object_unref: assertion ‘G_IS_OBJECT (object)’ failed“, фигня, щя найдём строчку, в которой оно возникает, починим!
Ага! А вот хрен там!
Уже который день ковыряю, не могу найти причину. Т.е. причину нашёл, только от этого не легче.
Хоть убей не понимаю, что делают эти самые g_object_ref’ы и g_object_unref’ы! Уж и так пытался понять, и эдак… Пока мне кажется, что эти сущности избыточны, вследствие чего я и не могу понять их назначения и необходимости их использования 🙁
Надо, кстати, на форуме Убунтовском спросить, может кто-то популярно сможет объяснить…
Последняя охота на жуков
Если ничего экстраординарного не произойдёт, то завтра в планах родить очередной релиз.
Эх, найди я способ избавится от того сегфолта раньше… А теперь получили громоздкий код, что связано с необходимостью хранить и обрабатывать море информации по каждому аккаунту, но с другой стороны – отличная производительность без тормозов (которые были бы неминуемы при создании виджета каждый раз, когда он был бы нужен).
Увы, практически в последний момент в меру ряда факторов решил отказаться от одновременного использования настроек некоего основного аккаунта и каждого из активных аккаунтов в отдельности, теперь будет либо основной, либо остальные.
Научился убивать виджет без сегфолта!
Уж не знаю, когда мне надоест есть этот кактус, а также где граница моей упёртости…
В общем, как-то неспешно, ватно и невыразительно, но удалось найти причину сегфолта при уничтожении виджета pidgin_status_box_new_with_account, который используется для смены статуса и т.п. для каждого из аккаунтов.
Многие вещи остаются для меня абсолютно, ну т.е. совершенно непонятными, как я ни пыжусь их понять. Так, когда-то для меня осталось за бортом объектно ориентированное программирование, я ниасилил Turbo Vision и написал частично на Паскале, частично на ассемблере для своих нужд собственную библиотеку со всеми необходимыми функциями – менюшки, окна, вывод и редактирование строк и прочее, с поддержкой мыши, всё, как положено. Впрочем, я написал её несколько раньше, чем появился TV… Ну, да я отвлёкся. “А вот я в советское время УУУУУУ” :)))
В общем, так или иначе, а в следующем релизе, похоже, снова не будет ни одного ИЗВЕСТНОГО бага. Только неизвестные 🙂
Снова пробую поставить 2.6.4
Ибо в 2.6.3 сегфолт при попытке закрыть виджет смены статуса после запуска процедуры его смены запарил. Мне, впрочем, удалось, его обойти частично, создавая для каждого аккаунта свой виджет и закрывая его лишь при выключении плагина. Следствие – время запуска плагина возросло многократно, зато при клике на кнопку смены статуса – никаких тормозов. Но, склоняюсь к отказу от этого функционала, т.к. во-первых, такая реализация уж слишком попахивает некрофилией, во-вторых, остаются возможности для получения сегфолта, что в релизе я считаю недопустимым. Например, если вы инициировали процесс смены статуса для аккаунта, а, пока Пиджин тормозит (на хрена там эта задержка?), выключить плагин.
Может, сделаю альтернативную версию, с этим багом, но позже.
А может, в 2.6.4 это починили, тогда всё проще.
Иди ко мне, голубочек! Щя я тебя! Ух, так откомпилю! Где мой вазелин? :)))
Какая несправедливость!
Ну почему, почему при попытке убить виджет pidgin_status_box_new_with_account в момент смены статуса возникает сегфолт?
В принципе, я уже наметил путь обхода этого дела, но этот путь, как уж водится, ведёт через жопу 🙁
Придётся после смены статуса виджет не убивать, а скрывать. Надеялся, что бонусом такого подхода будет большая скорость создания (уж больно тормозной он), думал, это тормоза связаны именно с созданием виджета, а не отрисовки, а хрен там – отрисовки 🙁
Ну ладно, впереди выходные. Надо только бубен с работы домой взять, чую – пригодиться! 🙂
Зато ещё косяков с аргументами функций нашёл и исправил 🙂
Нашёл причину сегфолта?
Увы, даже на рабочем стенде сегфолт снова перестал возникать, но я успел (примерно) вычислить, в какой момент он возникает.
В связи с чем появилось сразу две идеи о причинах его возникновения – кривая реализация передачи объекта функции, ну, и уже мои кривые руки (точнее – отсутствие соответв знаний на момент написания функции) – попытка принять функцией 3 аргумента, тогда как отправляется в неё всего 1 (ещё одно подтверждение… странности разработчиков компилятора, который позволяет делать такие вещи. тот же Паскаль за это молча бил канделябром в лицо :)))).
В своей, уже изрядно переписанной версии, исправил, но жду реакции общественности, у кого ошибка проявляется устойчиво – прав ли я в своей догадке.
А ещё по ходу удалось оптимизировать функцию загрузки плагина, но это уже мелочи.
Сделал смену иконок кнопок
Пока дома не было инета и я не мог получить через Dropbox последнюю версию исходника, который я начал ковырять на работе, то пришлось заняться рюшечками. Зато теперь при смене состояния кнопок-переключателей меняется и картинка на них. Так, например, при отключении звука на кнопке рисуется соответствующий значок с зачёркнутым динамиком.
Надо будет нарисовать что-нить, правда, на кнопку “Показывать только контакты в сети”, а с рисованием у меня всё плохо 🙂
Ну да ладно, кто нарисует и пришлёт лучше – спасибо скажу.
Дома сегфолтится при включении аккаунта так и не хочет – работает, зараззза. Подозреваю, что сегфолт возникает при попытке пересоздать статусную строку, но плагин её любит вообще пересоздавать. Там при таком количестве событий она пересоздаётся – огого! Например, при смене статуса… А жалуются только на добавление аккаунта. Странно это. Буду на работе ковырять, раз дома не проявляется.
Сегфолт при включении аккаунта получен!
Удалось получить на рабочей машине, дома без проблем всё включается/выключается без проблем.
Надо сильно думать, что бы это значило?…
Pidgin 2.6.4 ругается почти по-русски
После сборки из исходников последней версии, Pidgin при запуске ругается русским китайским языком:
“Pidgin 2.6.4 были с ошибками сегментации и попытались просмтреть файл ядра.
Это глюк в программе и вы тут не виноваты.”
На сим знакомство с ним покамест заканчиваю. До лучших времён.
Поддержите меня!
Recent Posts
Recent Comments
- Новая версия патча-русификатора Yume Miru Kusuri. Теперь и с графикой. on
- Новая версия патча-русификатора Yume Miru Kusuri. Теперь и с графикой. on
- Новая версия патча-русификатора Yume Miru Kusuri. Теперь и с графикой. on
- Новая версия патча-русификатора Yume Miru Kusuri. Теперь и с графикой. on
- Новая версия патча-русификатора Yume Miru Kusuri. Теперь и с графикой. on
Archives
- May 2020
- December 2019
- June 2019
- July 2018
- February 2018
- September 2017
- August 2017
- June 2017
- March 2017
- January 2017
- December 2016
- January 2016
- December 2015
- November 2015
- October 2015
- September 2015
- August 2015
- July 2015
- April 2015
- February 2015
- January 2015
- December 2014
- November 2014
- October 2014
- September 2014
- July 2014
- June 2014
- February 2014
- January 2014
- December 2013
- February 2013
- January 2013
- June 2012
- April 2012
- March 2012
- August 2011
- June 2011
- April 2011
- February 2011
- December 2010
- November 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009