1. C++ / Говнокод #23305

    +3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    void Assembler::divsd(XMMRegister dst, Address src) {
      NOT_LP64(assert(VM_Version::supports_sse2(), ""));
      InstructionMark im(this);
      simd_prefix(dst, dst, src, VEX_SIMD_F2);
      emit_byte(0x5E);
      emit_operand(dst, src);
    }
    
    void Assembler::divsd(XMMRegister dst, XMMRegister src) {
      NOT_LP64(assert(VM_Version::supports_sse2(), ""));
      int encode = simd_prefix_and_encode(dst, dst, src, VEX_SIMD_F2);
      emit_byte(0x5E);
      emit_byte(0xC0 | encode);
    }
    
    void Assembler::divss(XMMRegister dst, Address src) {
      NOT_LP64(assert(VM_Version::supports_sse(), ""));
      InstructionMark im(this);
      simd_prefix(dst, dst, src, VEX_SIMD_F3);
      emit_byte(0x5E);
      emit_operand(dst, src);
    }
    
    void Assembler::divss(XMMRegister dst, XMMRegister src) {
      NOT_LP64(assert(VM_Version::supports_sse(), ""));
      int encode = simd_prefix_and_encode(dst, dst, src, VEX_SIMD_F3);
      emit_byte(0x5E);
      emit_byte(0xC0 | encode);
    }
    
    void Assembler::emms() {
      NOT_LP64(assert(VM_Version::supports_mmx(), ""));
      emit_byte(0x0F);
      emit_byte(0x77);
    }
    
    void Assembler::hlt() {
      emit_byte(0xF4);
    }
    
    void Assembler::idivl(Register src) {
      int encode = prefix_and_encode(src->encoding());
      emit_byte(0xF7);
      emit_byte(0xF8 | encode);
    }

    https://github.com/openjdk-mirror/jdk7u-hotspot/blob/50bdefc3afe944ca74c3093e7448d6b889cd20d1/src/cpu/x86/vm/assembler_x86.cpp

    Вот эта вот вся ерунда отвечает в Hotspot JVM за генерацию опкодов (чтоб JIT делать). Вы возможно спросите "а где тут говно, j123123?".
    Отвечаю: говно тут на фундаментальном уровне. Такой хуйни по-хорошему вообще не надо писать. Надо формально описать вообще все ебучие опкоды жабового байткода, и все машинные инструкции процессора, которые могут быть порождены жабовым JIT-ом, и потом математически доказать эквивалентность всей этой трансформации какой-нибудь логикой Хоара, системами автоматического доказательства теорем, всякими там Coq, Isabelle и прочей такой сранью, о которой вероятно слышал roman-kashitsyn, раз он там хачкель и Idris с зависимыми типами задрачивал. Ну и CHayT.

    j123123, 29 Августа 2017

    Комментарии (114)
  2. C++ / Говнокод #23304

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    namespace parse_main_config {
    
        struct _main_config_ {
            std::string m_sCurrentConfigFile;
            std::string m_sBaseFile;
            std::string m_sBasePrefix;
            std::string m_sCheckRuleFile;
            std::string m_sReplacementTablesFile;
            std::string m_sPasswdFile;
            std::string m_sTestsListFile;
            std::string m_sModesFile;
            std::string m_sIfacesFile;
            std::string m_sCmcCheckFile;
            std::string m_sUpsCheckFile;
            std::string m_sSetLocalIpFile;
            std::string m_sShortLogFile;
            std::string m_sFullLogFile;
            std::string m_sListLogFile;
    
    	int m_iNTPTime;
    	int m_iNTPOffset;
    	int m_iMonNumber;
            int m_iOSRebootTime;
            int m_iMonitorCount;
            QString m_sStationType;
            int m_iHddTimeout;
            std::string m_sWinIconFile;
            std::string m_sWinMenuOptFile;
            std::string m_sWinMenuCloseFile;
            std::string m_sWindowTitle;
    
            QString m_sServerIP;
            QString m_sServerNetMask;
            QString m_sServerNetIP;
            int m_iPort;
            int m_iTimeout;
    		// Remote work
            std::string m_sRemoteHost;
    		std::string m_sRemoteUser;
    		std::string m_sRemotePass;
    		std::string m_sRemoteFtpUser;
    		std::string m_sRemoteFtpPass;
    
            // defaults
            _main_config_() {
                m_sCurrentConfigFile    = "";
                m_sBaseFile             = "./base.cfg";
                m_sBasePrefix           = "Workstation";
                m_sCheckRuleFile        = "./check_rules.cfg";
                m_sModesFile            = "./view_modes.cfg";
                m_sIfacesFile           = "./ip.cfg";
                m_sReplacementTablesFile = "./replacement_tables.xml";
                m_sShortLogFile         = "./short.log";
                m_sFullLogFile          = "./full.log";
                m_sListLogFile          = "./list.log";
                m_sPasswdFile           = "./passwd";
    
                m_iNTPTime              = 0;
                m_iNTPOffset            = 0;
    
                m_sServerNetMask        = "255.255.255.0";
                m_sServerNetIP          = "1.1.1.1";
                m_sServerIP             = "127.0.0.1";
                m_iPort                 = 1;
                m_iTimeout              = 11;
                m_iMonNumber	    = 2;
    
                m_iOSRebootTime         = -1;
    
            std::string m_sRemoteHost = "127.0.0.1";
                    std::string m_sRemoteUser = "blablabla";
                    std::string m_sRemotePass = "blablabla";
    		std::string m_sRemoteFtpUser = "blablabla";
    		std::string m_sRemoteFtpPass = "";
            }
        };
    
        // parsing file
        int read_configuration(const std::string &, _main_config_ &);
    }

    Поддерживаю старый проект. Большой и настолько старый, что написан с использованием Qt3.
    Дело дошло до релиза.
    Соль в том, что я добавил в эту структуру поле с именем - m_sCurrentConfigFile (первое)
    При сборке debug конфигурации все норм, с release конфигурацией - приложение вылет при QMainWindow::show();
    Стоит закомментить это поле и все места, где оно юзается, естественно - как сука, все хорошо.
    Юзается в двух местах - и в обоих случаях к нему просто присваивается строка.
    На тот самый метод -- ну никак не должно влиять.
    Не подскажете, какая сегодня фаза луны?

    OlegUP, 29 Августа 2017

    Комментарии (7)
  3. Куча / Говнокод #23302

    −15

    1. 1
    github.com/mpak2/mpak.su/tree/master/include/mail

    В mpak завезли composer.json

    d_fomenok, 27 Августа 2017

    Комментарии (4)
  4. PHP / Говнокод #23298

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <?php if (!\MUserAuth::isAuthenticated()) : ?>
                <div id="wrapper-for-cabinet-content" style="display: none;"></div>
            {else}
                <div id="wrapper-for-cabinet-content">
                {include file="/themes/$__theme/en/common/muser_dropdown_part/cabinet.tpl"}
                </div>
            {/if}

    И это #работает#блять... "Smarty" нашего тимлида...

    rez1dent3, 25 Августа 2017

    Комментарии (17)
  5. PHP / Говнокод #23297

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    function db($class, $configName)
    {
        eval("class $class extends Database {
            public static function staticConstruct()
            {
                global \$fcConfig;
                \$db                  = \$fcConfig->get('db');
                static::\$host          = \$db->get('$configName.host');
                static::\$user_name     = \$db->get('$configName.username');
                static::\$user_pass     = \$db->get('$configName.password');
                static::\$database_name = \$db->get('$configName.dbname');
    
                static::connect();
            }
        }
        
        \$class::staticConstruct();");
    }
    
    db( 'DB', 'connection' );

    Нужно больше динамикиблять....

    rez1dent3, 25 Августа 2017

    Комментарии (0)
  6. SQL / Говнокод #23295

    0

    1. 1
    2. 2
    3. 3
    if length(varrstr(cellphoneidx) != 11) or regexp_instr(varrstr(cellphoneidx), '\d\d\d\d\d\d\d\d\d\d') = 0 then
      return 1;
    end if;

    Проверка на валидность номера телефона (с вкраплениями pl/sql):
    И так везде, где требуется проверка на определенное количество цифр (номер инн, док-ов и т.д.).
    Псц, товарищи.

    ChezterLP, 24 Августа 2017

    Комментарии (0)
  7. 1C / Говнокод #23294

    +3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    &НаКлиенте
    Процедура Заполнить(Команда)
    	
    	КоличествоСтрок = ПроверитьКоличествоСтрок();
    	….	
    
    КонецПроцедуры
    
    &НаСервере
    Функция ПроверитьКоличествоСтрок()
    	ТаблицаТабеля = ЭтотОбъект.ТаблицаЧасов.Выгрузить();
    	Возврат ТаблицаТабеля.Количество();
    КонецФункции

    Шедевр от одного крупного франчайзи.

    SpitfireIX, 23 Августа 2017

    Комментарии (20)
  8. PHP / Говнокод #23293

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    <?
    
    if(!$_POST){//mpre("Не аякс запрос");
    }elseif(!$name = mpquot(get($_POST, 'name'))){mpre("Регистрационное имя не указано");
    }elseif(!$pass = get($_POST, 'pass')){mpre("Пароль для регистрации не указан");
    }elseif(get($_POST, 'pass') != get($_POST, 'pass2')){mpre("Пароли не совпадают");
    }elseif($users = rb("{$conf['db']['prefix']}users","name","[{$name}]")){mpre("Пользователь уже зарегистрирован");
    }elseif(!$sess = get($conf, 'user', 'sess')){mpre("Ошибка полученя сессии текущего пользователя");
    }elseif(!$mphash = mphash($name, $pass)){mpre("Ошибка генерации пароля");
    }elseif(!$users = fk("{$conf['db']['prefix']}users", $w = array("name"=>$name), $w += array("type_id"=>1, "pass"=>$mphash, "reg_time"=>time(), "last_time"=>time(), "email"=>get($_POST, 'email'), "ref"=>get($conf, 'user', 'sess', 'ref'), "refer"=>get($conf, 'user', 'sess', 'refer')))){mpre("Ошибка регистрации пользователя");
    }elseif(!$grp = get($conf, 'settings', 'user_grp')){mpre("Ошибка определения пользовательской группы");
    }elseif(!$users_grp = rb("users-grp", "name",$w = "[{$grp}]")){mpre("Ошибка выборки группы {$w}");
    }elseif(!$users_mem = fk("users-mem", $w = ["uid"=>$users['id'], "grp_id"=>$users_grp['id']], $w)){mpre("Ошибка добавления пользователя `{$users["name"]}` в группу '{$users_grp["name"]}'");
    }elseif(!$sess = fk("{$conf['db']['prefix']}sess", ["id"=>$sess["id"]], null, ['uid'=>$users["id"]])){mpre("Ошибка обновления сессии пользователя");
    }else{ mpevent("Регистрация нового пользователя", $name, $users['id'], $_POST);
    	 exit(json_encode($users));
    }

    Страница регистрации

    12febraury, 23 Августа 2017

    Комментарии (17)
  9. JavaScript / Говнокод #23292

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    var L = {
                'Рђ': 'A',
                'Р°': 'a',
                'Р‘': 'B',
                'Р±': 'b',
                'Р’': 'V',
                'РІ': 'v',
                'Р“': 'G',
                'Рі': 'g',
                'Р”': 'D',
                'Рґ': 'd',
                'Р•': 'E',
                'Рµ': 'e',
                'РЃ': 'Yo',
                'С‘': 'yo',
                'Р–': 'Zh',
                'Р¶': 'zh',
                'Р—': 'Z',
                'Р·': 'z',
                'И': 'I',
                'Рё': 'i',
                'Р™': 'Y',
                'Р№': 'y',
                'Рљ': 'K',
                'Рє': 'k',
                'Р›': 'L',
                'Р»': 'l',
                'Рњ': 'M',
                'Рј': 'm',
                'Рќ': 'N',
                'РЅ': 'n',
                'Рћ': 'O',
                'Рѕ': 'o',
                'Рџ': 'P',
                'Рї': 'p',
                'Р ': 'R',
                'СЂ': 'r',
                'РЎ': 'S',
                'СЃ': 's',
                'Рў': 'T',
                'С‚': 't',
                'РЈ': 'U',
                'Сѓ': 'u',
                'Р¤': 'F',
                'С„': 'f',
                'РҐ': 'Kh',
                'С…': 'kh',
                'Р¦': 'Ts',
                'С†': 'ts',
                'Р§': 'Ch',
                'С‡': 'ch',
                'РЁ': 'Sh',
                'С€': 'sh',
                'Р©': 'Sch',
                'С‰': 'sch',
                'РЄ': '',
                'СЉ': '',
                'Р«': 'Y',
                'С‹': 'y',
                'Р¬': "",
                'СЊ': "",
                'Р­': 'E',
                'СЌ': 'e',
                'Р®': 'Yu',
                'СЋ': 'yu',
                'РЇ': 'Ya',
                'СЏ': 'ya'
            };

    Pavel-Pronskiy, 23 Августа 2017

    Комментарии (4)
  10. PHP / Говнокод #23291

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $val = trim($str);
            $last = strtolower($str[strlen($str)-1]);
            switch($last) {
                case 'g': $val *= 1024;
                case 'm': $val *= 1024;
                case 'k': $val *= 1024;
            }
            return $val;

    Встретил в коде одного интернет магазина

    den_rad, 23 Августа 2017

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