[sisyphus] liblensfun
Dmitry V. Levin
ldv на altlinux.org
Ср Авг 19 03:18:14 MSD 2009
On Tue, Aug 18, 2009 at 02:39:24AM +0400, Dmitry V. Levin wrote:
> On Thu, Aug 13, 2009 at 07:04:39PM +0300, Kirill A. Shutemov wrote:
> > 2009/8/13 Victor Forsyuk <force на altlinux.org>:
> [...]
> > > Я вот сижу и думаю (нет, это не по поводу этого кода), если даже с полностью
> > > выключенной оптимизацией компилятор (gcc 4.4) создает код, отказывающийся
> > > работать, тогда как скомпилированный gcc 4.3 работает - стоит разбираться с
> > > кодом или это в любом случае регрессия компилятора?
> >
> > Зависит от.
> >
> > > Кому-то интересно будет посмотреть?
> >
> > Давай. Только не два мегабайта кода. Локализуй до 50-100 строк, не больше.
>
> 792 for (i = 0; ; i++)
> 793 {
> 794 const char *model_name;
> 795 lfTCAModel model = LF_TCA_MODEL_NONE + i;
> 796 model_name = lf_get_tca_model_desc (model, NULL, NULL);
> 797 if (!model_name)
> 798 break;
> 799 gtk_combo_box_append_text (GTK_COMBO_BOX (data->LensTCAModel), model_name);
> 800 if (model == CFG->lens_tca.Model)
> 801 active_index = i;
> 802 }
>
> При выполнении ufraw_lens_ui.c:798 происходит stack corruption.
> Вызов lf_get_tca_model_desc ведёт в странно собирающуюся cpp'шную библиотеку
> liblensfun, про использование которой в ufraw пишут забавные вещи:
> http://ufraw.sourceforge.net/lensfun.html
Попробовал свежий компилятор и посмотрел немного внимательнее.
То, что я сперва принял за stack corruption, таковым не является, но вот
внутри lfLens::GetTCAModelDesc действительно происходят странные вещи,
в результате которых вышепроцитированный цикл не прекращается.
--
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 197 байтов
Описание: отсутствует
Url : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20090819/c6115cb6/attachment-0001.bin>
Подробная информация о списке рассылки Sisyphus