IBProvider v3.30.2

Привет всем.

Анонсировано новое исправление IBProvider-a.

Забавно, но уже в трех местах нашел идентичную багу — забываю написать return. И это навеяло эпизод из «Особенностей национальной охоты»:

— А я ему говорю, товарищ генерал, берите ниже. Он — бах, и мимо. Бах — мимо. Я уж потом сам стал стрелять.
— Михалыч и мимо?
— А меня это не удивляет. Я, кстати, давно за ним замечаю: не бьет зверя. Не бьет зверя. Стрелять — он стреляет, но так, просто так.

В первом случае (исправлен в 3.30.1) срабатывал ассерт. В релизе проблем не было.

А во втором и третьем (copy&paste) — провайдер неправильно определял код основной ошибки сервера.

 if(!result2.null())
  result2.value(); //нет return

 if(!result1.null())
  result1.value(); //нет return

 //[2015-05-05]
 //статус вектор содержит херню какую-то.

 return ibp_fb_err__unexpected_error;

Вообще, я в таких случаях стараюсь писать так:

 if(!result2.null())
  result2.value(); //нет return

 assert(result2.null());

 if(!result1.null())
  result1.value(); //нет return

 assert(result1.null());

 //[2015-05-05]
 //статус вектор содержит херню какую-то.

 return ibp_fb_err__unexpected_error;

Бага сразу бы вылезла.

Но, похоже, 5 мая 2015 меня явно что-то очень сильно отвлекало 🙂

Leave a Comment