- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
int size;
size = EXPR;
if (size > INT_MAX || size <= 0) {
return NULL;
}
// ...
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+133
int size;
size = EXPR;
if (size > INT_MAX || size <= 0) {
return NULL;
}
// ...
Ндя. Семь лет уже. Теперь всё понятно...
+52
int QTabBarPrivate::indexAtPos(const QPoint &p) const
{
Q_Q(const QTabBar);
if (q->tabRect(currentIndex).contains(p))
return currentIndex;
for (int i = 0; i < tabList.count(); ++i)
if (tabList.at(i).enabled && q->tabRect(i).contains(p))
return i;
return -1;
}
currentIndex - видимо откат заплатил
PS
Cкоро всю Qt на говнокод заливать придется.
Плохое настроение или хотите поржать - открывайте исходники Qt в случайном месте - поднимаете себе настроение идиотскими решениями - профит
+57
typedef deque<uint8_t> bn;
#define cat2(b,e) b##e
#define cat(b,e) cat2(b,e)
#define fsi(i,s,e) for(size_t i(s), cat(i,cat(_fsi_end_,__LINE__))(e); i<cat(i,cat(_fsi_end_,__LINE__)); ++(i))
void ml10(bn& n){
n.push_front(0);
}
uint8_t ni(const bn& n, size_t i){
if(n.size()<=i)
return 0;
else
return n[i];
}
size_t ms(const bn& n1, const bn& n2){
return (max) (n1.size(), n2.size());
}
void pb(uint8_t b1, uint8_t b2, uint8_t lc, uint8_t& r, uint8_t& c){
uint8_t tr = (b1+b2+lc);
r = tr & 1;
c = !!(tr & 2);
}
bn bi(bn n){
reverse(n.begin(), n.end());
return n;
}
bn pl(const bn& n1, const bn& n2){
bn r;
uint8_t c=0,br=0;
fsi(i,0,ms(n1, n2)){
pb(ni(n1,i),ni(n2,i),c,br,c);
r.push_back(br);
}
if (c)
r.push_back(c);
return r;
}
bn ml(bn n1, const bn& n2){
bn r;
fsi(i,0,n2.size()){
if(n2[i])
r=pl(r,n1);
ml10(n1);
}
return r;
}
У меня к вам вопрос парни.
В нашем отделе взяли олимпиадника. За ним не следили. Он написал много кода и ушел в гугл.
Как бы за ним теперь код поправить? Хотябы конструкции языка типа for вернуть вместо например fsi?
Код не из проекта. но его. В проекте похожий и даже хуже.
Нужно типа утилиты препроцессор крестов для части макросов (все разворачивать макросы или инклудить хедеры очевидно нельзя).
+161
# coffee script
d = 1 - Math.pow(d,n) * Math.pow((1/d -1),n)
// java script
d = 1 - Math.pow(d, n) * Math.pow(1 / d(-1), n);
почему не любят кофескрипт, выпуск -дцатьпервый. потому что нельзя просто скопипастить формулу и не поймать Uncaught TypeError: number is not a function
+139
SGELISTENTRY *sgeListAdd(SGELIST *l, const char *id, void *data) {
SGELISTENTRY *ret;
sgeNew(ret, SGELISTENTRY);
l->numberOfEntries++;
if (l!=NULL) {
ret->prev=l->last;
} else {
ret->prev=NULL;
}
if (l!=NULL && l->last!=NULL) {
l->last->next=ret;
}
ret->next=NULL;
ret->id=strdup(id);
ret->data=data;
if (l==NULL) return ret;
if (l->first==NULL) l->first=ret;
l->last=ret;
return ret;
}
Эх, проверяй, не проверяй, один хрен все грохнется при l==NULL
+160
/**
* @param array $input
* @return array
* @throws Exception
*/
protected function makeParams($input)
{
if (!is_array($input))
{
throw new \Exception('argument should be array');
}
$params = array();
foreach ($input as $k=>$v)
{
$params[] = $v;
}
return $params;
}
свой array_values, с блекджеком и экзепшенами
+154
if ((new Date(2014, 0, 1)).getHours() != 0 || new Date(2015, 0, 7).getHours() != 0) {
// Переопределяем конструктор
Date = (function (NativeDate) {
var NewDate = function (Y, M, D, h, m, s, ms) {
var length = arguments.length;
var date = length === 1 && String(Y) === Y ? // isString(Y)
new NativeDate(NewDate.parse(Y)) :
length >= 7 ? new NativeDate(NativeDate.UTC(Y, M, D, h, m, s, ms)) :
length >= 6 ? new NativeDate(NativeDate.UTC(Y, M, D, h, m, s)) :
length >= 5 ? new NativeDate(NativeDate.UTC(Y, M, D, h, m)) :
length >= 4 ? new NativeDate(NativeDate.UTC(Y, M, D, h)) :
length >= 3 ? new NativeDate(NativeDate.UTC(Y, M, D)) :
length >= 2 ? new NativeDate(NativeDate.UTC(Y, M)) :
length >= 1 ? new NativeDate(Y) :
new NativeDate();
if (length == 0) {
date = new NativeDate(+date - date.getTimezoneOffset() * 60000);
}
date.constructor = NewDate;
return this instanceof NativeDate ? date : date.toString();
};
if (NativeDate.now) {
NewDate.now = function () {
return new NewDate().getTime();
};
}
if (NativeDate.UTC) {
NewDate._UTC = NativeDate.UTC;
NewDate.UTC = function (Y, M, D, h, m, s, ms) {
var _date = new NewDate(NewDate._UTC.apply(this, arguments));
return +_date - _date.getTimezoneOffset() * 60000;
};
}
NewDate.prototype = NativeDate.prototype;
NewDate.prototype.constructor = NewDate;
И так далее, "фикс" для кривых таймзон в JS на винде http://habrahabr.ru/post/243685/
+159
static function beforeIblockElementAddOrUpdateResetResponseAuthor($fields){
...
}
+160
echo 'some string'."\n";
)))
+131
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace CA1
{
class Program
{
static void Main()
{
int buffer;
int Cout = 0;
string line;
System.IO.StreamReader file = new System.IO.StreamReader("file.txt");
while ((line = file.ReadLine()) != null)
{
buffer = Convert.ToInt32(line);
if(buffer > 0)
{
if(buffer / 2 > 5 && buffer / 2 < 49.5)
{
Cout++;
}
}
if (buffer < 0)
{
if (buffer / 2 < - 5 && buffer / 2 > - 49.5)
{
Cout++;
}
}
}
Console.WriteLine(Cout);
Console.ReadLine();
}
}
}
Вычисление количества цифр в числе