- 1
throw new std::bad_alloc();
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+165
throw new std::bad_alloc();
У нас в кодеконвеншене принято передавать исключения по указателю. Вчера обнаружил вот это во многих перегрузках оператора new, да и в прочих местах по проекту.
+168
SystemDiskLogSingleton::Instance().Add("Системный диск не отвечает на попытки записи данных. Возможно завис его драйвер.", 152, SystemDiskAccessError);
printStr("Системный диск висит. Обратитесь к системному администратору.");
loo54: goto loo54;
Вот такое нашёл в проекте нашего встроенного устройства. Есть один единственный диск в системе. В лог-файл записываются сообщения о различных ошибках. Оказалось, что и сообщение об ошибках доступа к этому диску тоже.
+165
//где-то в далеком-далеком хедере
typedef long SystemID;
// в коде
long FARPASCAL sb_ConfigureSystem(SystemID s)
{
.......
System * sys = (System*)s;
......
}
И в таком духе весь проект.
+162
class TWSpace: public Wtroka {
public:
inline TWSpace()
: Wtroka(CharToWide(" "))
{
}
};
static inline const Wtroka& Wspace() {
return *Singleton<TWSpace>();
}
const Wtroka& WSPACE = Wspace();
Пробел...
+189
for (int y=0; y<height; ++y)
{
int x=0;
dstp[x] = (srcp[x+4]*678 + srcp[x+3]*3902 + srcp[x+2]*13618 + srcp[x+1]*28830 +
srcp[x]*18508 + 32768)>>16; ++x;
dstp[x] = (srcp[x+4]*678 + srcp[x+3]*3902 + srcp[x+2]*13618 +
(srcp[x-1]+srcp[x+1])*14415 + srcp[x]*18508 + 32768)>>16; ++x;
dstp[x] = (srcp[x+4]*678 + srcp[x+3]*3902 +
(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 +
srcp[x]*18508 + 32768)>>16; ++x;
dstp[x] = (srcp[x+4]*678 + (srcp[x-3]+srcp[x+3])*1951 +
(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 +
srcp[x]*18508 + 32768)>>16;
for (x=4; x<width-4; ++x)
{
dstp[x] = ((srcp[x-4]+srcp[x+4])*339 + (srcp[x-3]+srcp[x+3])*1951 +
(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 +
srcp[x]*18508 + 32768)>>16;
}
dstp[x] = (srcp[x-4]*678 + (srcp[x-3]+srcp[x+3])*1951 +
(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 +
srcp[x]*18508 + 32768)>>16; ++x;
dstp[x] = (srcp[x-4]*678 + srcp[x-3]*3902 +
(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 +
srcp[x]*18508 + 32768)>>16; ++x;
dstp[x] = (srcp[x-4]*678 + srcp[x+3]*3902 + srcp[x-2]*13618 +
(srcp[x-1]+srcp[x+1])*14415 + srcp[x]*18508 + 32768)>>16; ++x;
dstp[x] = (srcp[x-4]*678 + srcp[x-3]*3902 + srcp[x-2]*13618 +
srcp[x-1]*28830 + srcp[x]*18508 + 32768)>>16;
srcp += pitch;
dstp += pitch;
}
вот он - бесконстантый код
+160
CBufferHandlerOfPrmtv::CBufferHandlerOfPrmtv
{
_ffInt = 0;
_ffInt = ~_ffInt;
_ffChar = 0;
_ffChar = ~_ffChar;
}
bool CBufferHandlerOfPrmtv::IsFF(unsigned int toCheck, unsigned int toCheckSz)
{
if(toCheckSz > sizeof(unsigned int)){
assert(!testPrmtvs);
return true;
}
if(!toCheckSz){
assert(!testPrmtvs);
return true;
}
return (memcmp(&toCheck, &_ffInt, toCheckSz) == 0);
}
разбирал щас говешки и вот такое увидел...
НАХЕРА ?!?!!?
PS: подскажу. метода проверяет число на 0xff.
+151
return *reinterpret_cast<ChatUnitList*>(&m_contacts); //black magic
Действительно черная магия... Хотя работает, но я не уверен, что на всех платформах
+169
struct IText{
typedef boost::shared_ptr<IText> SPtr;
virtual void draw() = 0;
virtual void add(const SPtr&) {
throw std::runtime_error("IText: Can't add to a leaf");
}
virtual void remove(const SPtr&){
throw std::runtime_error("IText: Can't remove from a leaf");
}
};
struct CompositeText: public IText{
void add(const SPtr& sptr){
children_.push_back(sptr);
}
void remove(const SPtr& sptr){
children_.remove(sptr);
}
void replace(const SPtr& oldValue, const SPtr& newValue){
std::replace(children_.begin(), children_.end(), oldValue, newValue);
}
virtual void draw(){
BOOST_FOREACH(SPtr& sptr, children_){
sptr->draw();
}
}
private:
std::list<SPtr> children_;
};
struct Letter: public IText{
Letter(char c):c_(c) {}
virtual void draw(){
std::cout<<c_;
}
private:
char c_;
};
int main(){
CompositeText sentence;
IText::SPtr lSpace(new Letter(' '));
IText::SPtr lExcl(new Letter('!'));
IText::SPtr lComma(new Letter(','));
IText::SPtr lNewLine(new Letter('\n'));
IText::SPtr lH(new Letter('H')); // letter 'H'
IText::SPtr le(new Letter('e')); // letter 'e'
IText::SPtr ll(new Letter('l')); // letter 'l'
IText::SPtr lo(new Letter('o')); // letter 'o'
IText::SPtr lW(new Letter('W')); // letter 'W'
IText::SPtr lr(new Letter('r')); // letter 'r'
IText::SPtr ld(new Letter('d')); // letter 'd'
IText::SPtr li(new Letter('i')); // letter 'i'
IText::SPtr wHello(new CompositeText);
wHello->add(lH);
wHello->add(le);
wHello->add(ll);
wHello->add(ll);
wHello->add(lo);
IText::SPtr wWorld(new CompositeText); // word "World"
wWorld->add(lW);
wWorld->add(lo);
wWorld->add(lr);
wWorld->add(ll);
wWorld->add(ld);
sentence.add(wHello);
sentence.add(lComma);
sentence.add(lSpace);
sentence.add(wWorld);
sentence.add(lExcl);
sentence.add(lNewLine);
sentence.draw(); // ptrints "Hello, World!\n"
IText::SPtr wHi(new CompositeText); // word "Hi"
wHi->add(lH);
wHi->add(li);
sentence.replace(wHello, wHi);
sentence.draw(); // ptrints "Hi, World!\n"
sentence.remove(wWorld);
sentence.remove(lSpace);
sentence.remove(lComma);
sentence.draw(); // ptrints "Hi!\n"
Hi, World! Психологическая зависимость от надуманного ООП убивает проекты и их создателей. Всё хорошо в меру. (Найдено на просторах интернета).
+169
//reversed for sorting
inline bool operator< (const Weight & other) const {
return (GetValue() > other.GetValue());
};
+167
re: data=new unsigned char[sz+1];
#ifdef SAFEMEM
if(!data){ SAFEMEM Sleep(1); goto re;}
#endif
Источник: http://rsdn.ru/forum/cpp.applied/3852182.aspx