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 меня явно что-то очень сильно отвлекало 🙂