- 1
- 2
- 3
std::auto_ptr<ItemDesc> desc(new ItemDesc());
...
m_items.insert(desc->m_item->m_name, desc.release());
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+161
std::auto_ptr<ItemDesc> desc(new ItemDesc());
...
m_items.insert(desc->m_item->m_name, desc.release());
Да, я тоже говнокодер. А ведь предупреждали...
gegMOPO4 17.02.2011 12:02 # −1
absolut 17.02.2011 12:17 # +1
Правда хотелось бы узнать, что за тип у m_items.
gegMOPO4 17.02.2011 12:30 # +1
absolut 17.02.2011 12:32 # 0
gegMOPO4 17.02.2011 12:44 # 0
Kirinyale ниже объяснил, в чём на самом деле говнокод.
Kirinyale 17.02.2011 12:34 # +1
Kirinyale 17.02.2011 12:33 # +3
Пришлось долго и вдумчиво ловить крэш на релизе из-за того, что после оптимизаций release() выполнялся раньше, а при вычислении первого аргумента шло обращение уже к нулевому указателю.
gegMOPO4 17.02.2011 12:38 # 0
desc->m_item->m_name следовало бы выделить в отдельную переменную.
Kirinyale 17.02.2011 12:41 # +1
Мейерс о такой хрени писал. А я читал. Но забыл.
gegMOPO4 17.02.2011 12:56 # 0
Kirinyale 17.02.2011 13:02 # 0
gegMOPO4 17.02.2011 13:05 # 0
Kirinyale 17.02.2011 13:07 # 0