А что делать, если баг среды?

Модератор: Модераторы

А что делать, если баг среды?

Сообщение Sharfik » 07.01.2014 23:25:15

Что делать, если выяснилось, что программа работает по разному в двух вариантах компиляции.
Если есть/нету строки var n:integer; в обоих процедурах, то компилируется правильно, если только в одном, то неправильно.

Код: Выделить всё
procedure TForm1.Button2Click(Sender: TObject);
var
  n:integer;
begin
  Alist.DelNotifyChange(Form1,edit1.OnClick);
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  n:integer;
begin
  Alist.AddNotifyChange(Form1,edit1.OnClick);
  Alist.AddNotifyChange(Form1,edit2.OnClick);
  Alist.AddNotifyChange(Form1,edit3.OnClick);
end;
Sharfik
энтузиаст
 
Сообщения: 502
Зарегистрирован: 20.07.2013 01:04:30

Re: А что делать, если баг среды?

Сообщение Padre_Mortius » 08.01.2014 00:26:52

Sharfik, писать в багтреккер проекта. Только это не ошибка среды, а ошибка/поведение компилятора.
Padre_Mortius
энтузиаст
 
Сообщения: 1267
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: А что делать, если баг среды?

Сообщение Sharfik » 08.01.2014 01:23:56

Это не ошибка компилятора, это мой косяк+компилятор. Просто совпало, что кое где неправильно брал адрес данных, а за счет этих var объявлений для двух функций совпадали адреса формы. Не знаю даже, как это описать это разработчику fpc, чтобы исключить такую случайность. Адреса выравнивались за счет них как то. :?
Sharfik
энтузиаст
 
Сообщения: 502
Зарегистрирован: 20.07.2013 01:04:30

Re: А что делать, если баг среды?

Сообщение Максим » 08.01.2014 02:42:14

Это никак не исключить, если идёт некорректная работа с указателями.

В любом случае, без небольшого полного компилируемого тестового проекта разговор бессмысленен.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 593
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва


Вернуться в IDE, компилятор, отладчик

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru