Архив за Декабрь 2009
Последний в этом году релиз
По сообщению одного иностранного товарища, в предыдущей версии имелась ошибка, которая у меня не проявлялась, но в некоторых условиях не позволявшая активировать кнопку «Добавить контакт» после загрузки учётных записей.
В итоге дважды переписал соответствующую функцию и теперь, вроде бы, всё работает 🙂
Заодно добавил контекстные меню при клике на панели инструментов и на кнопке смены статуса учётной записи.
Бугага!!!
Нашёл! Как ни странно, дело было не в моих кривых ручонках, в ручёнках того, кто писал этот самый pidgin_status_box_new_with_account.
На эту мысль меня навел тот факт, что во-первых, никаких unref’ов я там и близко не использую, однако ругается именно unref, во-вторых, при попытке установить свойство в TRUE (каковое значение и установлено по умолчанию) всё замечательно работало, проблема возникала исключительно при попытке установить его в FALSE.
Ну да ладно. Немного жаль потерянные 4 дня, что я потратил на выяснение этого.
В плюсе же — в очередной раз убедился, что верить нельзя никому, а также обнаружение и попутное устранение сегфолта при попытке добавить пользователя, если нет ни одного подключённого аккаунта (именно подключённого, а не активного).
В общем, нет худа без добра.
Эта музыка бууудет вееечной
Как выяснилось, то, что я так радостно нашёл днём — нихрена не оно и долбанная «g_object_unref: assertion `G_IS_OBJECT (object)’ failed» так и сыпет при первой попытке сделать g_object_set (TB->AccountStatusBox_sbox, «iconsel», FALSE, NULL) при условии, что TB->AccountStatusBox_sbox это pidgin_status_box_new_with_account (account).
При этом в плагине MyStatusBox никаких таких ошибок нет. Правда, его разработчики не знают, что этот плагин можно заставить вызвать сегфолт, а я с ним уже поборолся. Возможно, следствием этого и является текущая жопа, но от этого не легче. Странный выбор для разработчика — или такая ошибка, или такая. При этом создаётся впечатление, что третьего и не дано.
Упарило уже. Как-то неприлично много внимания к какой-то сраной, копеечной проблеме. Неадекватно много. Бедные программисты, вынужденные в ЭТОМ программить постоянно. Соболезную.
Совместимость в Pidgin 2.6.4
Сегодня прилетело обновление Pidgin до версии 2.6.4. Плагин стабильно работает, будто смены версии и не произошло.
Я рад.
Одним потенциальным гиморром меньше 🙂
Нашёл!
Нашёл, откуда оно всё лезло!
Странно всё это…
Вспоминаю свои потуги несколько лет назад ковырнуть 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 это починили, тогда всё проще.
Иди ко мне, голубочек! Щя я тебя! Ух, так откомпилю! Где мой вазелин? :)))
Поддержите меня!
Свежие записи
Свежие комментарии
- Новая версия патча-русификатора Yume Miru Kusuri. Теперь и с графикой. к записи
- Новая версия патча-русификатора Yume Miru Kusuri. Теперь и с графикой. к записи
- Новая версия патча-русификатора Yume Miru Kusuri. Теперь и с графикой. к записи
- Новая версия патча-русификатора Yume Miru Kusuri. Теперь и с графикой. к записи
- Новая версия патча-русификатора Yume Miru Kusuri. Теперь и с графикой. к записи
Архивы
- Май 2020
- Декабрь 2019
- Июнь 2019
- Июль 2018
- Февраль 2018
- Сентябрь 2017
- Август 2017
- Июнь 2017
- Март 2017
- Январь 2017
- Декабрь 2016
- Январь 2016
- Декабрь 2015
- Ноябрь 2015
- Октябрь 2015
- Сентябрь 2015
- Август 2015
- Июль 2015
- Апрель 2015
- Февраль 2015
- Январь 2015
- Декабрь 2014
- Ноябрь 2014
- Октябрь 2014
- Сентябрь 2014
- Июль 2014
- Июнь 2014
- Февраль 2014
- Январь 2014
- Декабрь 2013
- Февраль 2013
- Январь 2013
- Июнь 2012
- Апрель 2012
- Март 2012
- Август 2011
- Июнь 2011
- Апрель 2011
- Февраль 2011
- Декабрь 2010
- Ноябрь 2010
- Сентябрь 2010
- Август 2010
- Июль 2010
- Июнь 2010
- Май 2010
- Апрель 2010
- Март 2010
- Февраль 2010
- Январь 2010
- Декабрь 2009