Кресты / Говнокод #2133 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
/*
    CANON D-SLR cameras core routine
    Property of CANON INC. 1998-2010
    
    v 1.0 made by Radja Tokamoto Goines
    v 1.1 made by Dugwin Yakioto jr.
    
    last changes: 10.11.2009
*/

#include <stdlib.h>
#include <math.h>
#include <time.h>

#include "inc/tweakfocus.h"
#include "inc/radja_filters.h"

bool do_focus(lens, camera) {
    double fp;
    time_t t;

    t = init_focus_timer(t);
    
    do {
        fp = measure_focus_point(lens);
        move_focus(lens, fp)

        if (timeout(t))
            return false;

    } while (!lens.is_focused());
    
    if (!L_LensDetected(lens))
        lens.adjust_focus(rand(10));
        
    return true;
}

rawdata * scandata(matrix, lens, camera) {
    rawdata *cr;
    double noise, aberrations;

    cr = create_cr(matrix);
    
    read_exif_info(cr->exif, lens, camera);

    prepare_everything(matrix, lens, camera);
    
    if (!do_focus(lens, camera))
        return NULL;
    else 
        beep();
      
    aberrations = pow(100 - lens.focallength, 2) * sqrt(2) + 10;

    if (L_LensDetected(lens))
        aberrations /= 2.0;
      
    scan_sensor(cr, matrix, aberrations);

    noise = matrix.iso / 100.0;
    noise *= matrix.cropfactor;

    if (camera.model == EOS1000D) {
        noise *= 1.2;
        wait_for_something();
    }

    if (camera.model != EOS7D)
        wait_for_something();
    
    if (lens.manufacture != CANON_LENS) {
        corrupt_something(cr);
        apply_random_filter(cr);
    }
    
    if (lens.model == EF_50_F1_4) {
        noise /= 1.2;
        apply_fcb(cr); //fucken cool bokeh
    }
    
    if (lens.model == CANON_L_17_40_F4) {
        blur(cr, 0.8);
        distort(cr, 40 - lens.focallength);
    }
      
    radja_filter(cr, 1.570796326794896619231321691641); //don't touch that!

    if (is_eos1d_series(camera.model))
        disable_all_spoiling(cr);
    else
        make_nice_colors(cr);
    // finally...
    apply_noise(cr, noise);    
    apply_barrel_distortion(cr, lens);
    apply_pillow_distortion(cr, lens);  
    
    return cr;
}

http://habrahabr.ru/blogs/DSLR/74958/
Исходные тексты прошивки canon eos.
Многие, наверное, уже слышали, что на днях была взломана внутренняя сеть компании Canon и в числе прочего в сеть «утёк» кусок ядра исходных текстов прошивки камер серии EOS, который я имею честь эксклюзивно опубликовать на суд общественности.
Говночитатели без ЧЮ идут в *опу.

sbb sbb, (Updated )

Комментарии (22, +22)

Кресты / Говнокод #2122 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
char rc;
...
bool ResourceManager()
{
	static TResourceRC r;
	...
	delete r;
	...
	r=new TResourceRC(rc);
	...
	return true;
	assert(false);
};
...

От предков проект достался. Я думал, чего он переодически необьяснимо глючит...
ResourceManager() - вызываеться регулярно в цикле.

Говногость Говногость, (Updated )

Комментарии (13, +13)

Кресты / Говнокод #2095 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
//какой-то .h-файл
namespace Error {
	struct Put_error{
		const char * Message;
		Put_error(const char * e) { Message = e; }
	};
...

//в каком-то методе в другом файле
	  string msg = "Error: cannot open input file " + string(fileInputName) + "\n";
	  throw Error::Put_error(msg.c_str());

Lexey Lexey, (Updated )

Комментарии (15, +15)

Кресты / Говнокод #2092 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
vector<int> :: iterator itBegins = array.begin(); 
vector<int> :: iterator itEnds = array.end();

while(itBegins != itEnds)
{
         pVec.pop_back();
         it++;
}

Сей артефакт остался в коде ввиду лености переписывать его в 100 файлах сразу после удаления того, ради чего собственно затевался while(!pVec.empty()) ... прямо скажем - отлов ЭТОГО занял немало времени и нервов... тк на первый взгляд оно должно... а что ты видишь в этом коде, %юзернейм% ?

(исправленная версия XD )

Zeks Zeks, (Updated )

Комментарии (19, +19)

Кресты / Говнокод #2091 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
while(!pVec.empty())
{
         pVec.pop_back();
}

Сей артефакт остался в коде ввиду лености переписывать его в 100 файлах сразу после удаления того, ради чего собственно затевался while(!pVec.empty()) ... прямо скажем - отлов ЭТОГО занял немало времени и нервов... тк на первый взгляд оно должно... а что ты видишь в этом коде, %юзернейм% ?

Zeks Zeks, (Updated )

Комментарии (6, +6)

Кресты / Говнокод #2073 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
namespace inter {
    template<typename X>
    struct tplClass {
        private:
            X _priv;
        
        public:
            tplClass(const X _generator) {
                this->_priv = _generator;
                return;
            }
            
            tplClass(const tplClass<int>& _a) {
                this->_priv = _a.get();
                return;
            }

            const X get(void) const {
                return this->_priv;
            }
    };
    
    
    template<typename X>        
    const tplClass<X> operator+(const tplClass<X>& _lha, const tplClass<X>& _rha) {
        return tplClass<X>(_lha.get()+_rha.get());
    }
}

int main(int argc, char* args[], char* envs[]) {
    tplClass<int> a(5);
    tplClass<double> b(3.1);
    tplClass<double> c = a + b;
    return 0;
}

1. Всё упрощено до невозможности. Описано только то, что необходимо для узрения говнокода.
2. Несмотря на то, что решение существует в очень известной книжке, я напоролся на говнокод лично, пока программу писал. Искал несколько дней проблему... Ну да... Бывает...
3. Говнокод заключается в том, что данный код не компилируется.

P.S. Если видите, что где-то есть дыра, то говорите, возможно я опечатался (злобная администрация исправить не даст), возможно в данном коде плюг опущен, возможно дыра у меня в голове. Конструктивная критика приветствуется.

P.P.S. Если вы решили просто написать, что (C++ == "говно") is true , то, пожалуйста, прошу вас как людей порядочных и воспитанных, имеющих совесть и ум, пройдите мимо. Если у вас нит ни ума, ни совести, ни порядочности, то можете писать про "естественную говнистость" C++, милости прошу.

interested interested, (Updated )

Комментарии (42, +42)

Кресты / Говнокод #2051 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
// Найдено глубоко в продакшн-коде некоего транслятора:
HRESULT hr = S_OK;
try {
      hr = ParseSection(sourceTemplate, output, CS_IF);
}
CATCH_CG_EXCEPTION(this, hr)
CATCH_CG_EXCEPTION_END

// далее смотрим определения этих чудо-макросов
#define CATCH_CG_EXCEPTION(gen, hr) \
catch (CHierCGException* e)  { \
     (gen)->WriteExceptionMessage(e); \
     if (e->m_bContinue) { \
            if (e->m_useHRESULT) hr = e->m_hResult; else hr = E_FAIL; \
     } \
     delete e; \
     if (!(e->m_bContinue))

#define CATCH_CG_EXCEPTION_END \
      throw; \
}

Исключительно говнистая обработка исключений :-)

Orfest Orfest, (Updated )

Комментарии (9, +9)

Кресты / Говнокод #2041 Ссылка на оригинал

0

  1. 1
  2. 2
char *GetNumRenderedObjectsString() { char *mString = new char [128]; itoa (mNumRenderedObjects, mString, 10); return mString; };
char *GetNumDiscardedObjectsString() { char *mString = new char [128]; itoa (mNumDiscardedObjects, mString, 10); return mString; };

Отличная работа с памятью.

benin benin, (Updated )

Комментарии (7, +7)