1. PHP / Говнокод #13213

    +152

    1. 1
    2. 2
    3. 3
    4. 4
    $useAliasMap = $ctx->getOption('cache_alias_map', false) && array_key_exists($uri, $ctx->aliasMap);
    if ($useAliasMap && array_key_exists($uri, $ctx->aliasMap)) {
                        $resourceId = (integer) $ctx->aliasMap[$uri];
    }

    Видимо array_key_exists у разработчика только на второй раз срабатывает

    Agel_Nash, 22 Июня 2013

    Комментарии (0)
  2. PHP / Говнокод #13212

    +150

    1. 1
    2. 2
    3. 3
    if (!empty ($src) && !array_key_exists($src, $this->loadedjscripts)) {
                if (isset ($this->loadedjscripts[$src]))
                    return;

    Если ключа нет, то проверяем не null ли значение в массиве по этому индексу.

    Agel_Nash, 22 Июня 2013

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

    +153

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public function __isset($name) {
            return ($this->getOption(xPDO::OPT_HYDRATE_FIELDS) && array_key_exists($name, $this->_fields) && isset($this->_fields[$name]))
                || ($this->getOption(xPDO::OPT_HYDRATE_RELATED_OBJECTS)
                    && ((array_key_exists($name, $this->_composites) && isset($this->_composites[$name]))
                    || (array_key_exists($name, $this->_aggregates) && isset($this->_aggregates[$name]))));
        }

    ORM обертка одного очень популярного движка

    Agel_Nash, 22 Июня 2013

    Комментарии (11)
  4. Pascal / Говнокод #13210

    +76

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    function IPP (var i: integer): integer;
    begin
      Result := i;
      Inc(i);
    end;

    TarasB, 21 Июня 2013

    Комментарии (36)
  5. Python / Говнокод #13209

    −102

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    a=[1,2,3,1,2,1,4]
     
    for i in a:
        if i is 1:
            zzz=222
        else:
            print zzz

    http://ideone.com/nhqqRU
    Сегодня весь день чинил странный баг, смысл которого сводится вот к такой синтетки.
    Притом если условие не выполниться на первой итерации http://ideone.com/G3Uf7V , то будет эксепшен.

    хуита, 21 Июня 2013

    Комментарии (20)
  6. C++ / Говнокод #13208

    +16

    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
    // Lock the write mutex, to provide consistency of data                                                                                            
    #define LOCK                                                                   \                                                                   
        if (_ugb) {                                                                \                                                                   
            if (pthread_mutex_lock(&_write_mutex) == EINVAL)                       \                                                                   
                ASSERT(0);                                                         \                                                                   
        }                                                                                                                                              
    // Unlock write mutex when data sent                                                                                                               
    #define UNLOCK                                                                 \                                                                   
        if (_ugb) {                                                                \                                                                   
            if (pthread_mutex_unlock(&_write_mutex) == EINVAL)                     \                                                                   
                ASSERT(0);                                                         \                                                                   
        } 
    
    // Пример использования
    
    void socket::add_var(uint16_t code, const void *buffer, uint32_t length)                                                                          
    {                                                                                                                                                  
        LOCK
        try                                                                                                                                       
        {                                                                                                                                              
            DEBUG_I(Vblock, "Sending code 0x%X of size 0x%X\n", code, length);                                                                         
            send(&code, sizeof(code));                                                                                                                 
            send(&length, sizeof(length));                                                                                                             
            send(buffer, length);                                                                                                                      
        }                                                                                                                                              
        catch (const error & ve)                                                                                                                       
        {                                                                                                                                              
            UNLOCK                                                                                                                                     
            DEBUG_E(Vblock, "Caught an exception!\n");                                                                                                 
            throw;                                                                                                                                     
        }                                                                                                                                              
        catch (...)                                                                                                                                    
        {                                                                                                                                              
            UNLOCK                                                                                                                                     
        }                                                                                                                                              
        UNLOCK                                                                                                                                         
    }

    OK_BOOST_LOCK_A_MUTEX

    roman-kashitsyn, 21 Июня 2013

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

    +140

    1. 1
    2. 2
    3. 3
    innotracOrder.OrderShipTo = new PostOrderBatchRequestOrderBatchCustomerOrderOrderShipTo[] { innotracShipTo };
                var innotracPayment = new PostOrderBatchRequestOrderBatchCustomerOrderPayment();
                var innotracCreditCard = new PostOrderBatchRequestOrderBatchCustomerOrderPaymentCreditCard();

    Код древних ацтеков

    startrack, 21 Июня 2013

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

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $res = mysql_query('select `date` from `pic`');
    
    while($data = mysql_fetch_row($res)){
           if(date('d.m.y') != date('d.m.y',$data[0])) continue;
           $countPicToday++;
    }

    Не понятно. Почему нельзя было использовать COUNT() и WHERE

    AlexP, 20 Июня 2013

    Комментарии (32)
  9. C++ / Говнокод #13204

    +16

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    for(int i=0;i<World::size;i++)
    {
        for(int u=0;u<World::size;u++)
        {
                    //Задаётся зерно для генерации случайных чисел
            srand(GetTickCount()*i*u);                           
                    //Задаются случайные значения всем точкам от 0*0.1-10, до 100*0.1-10
            World::data[i][u]=(rand()%100)*0.1f-10.0f;                            
        }
    }

    http://habrahabr.ru/post/183986/

    Abbath, 20 Июня 2013

    Комментарии (15)
  10. C++ / Говнокод #13203

    +20

    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
    #include <iostream>
    
    enum Quiet { LOG };
    
    template<typename T>
    Quiet operator <<(Quiet o, T) {
        return o;
    }
    
    static inline Quiet operator <<(Quiet o, std::ostream &(*)(std::ostream &)) {
        return o;
    }
    
    int main() {
        LOG << "Hello world!" << std::endl;
        return 0;
    }

    Измыслил сегодня вот такую вот затычку для выключения логгирования

    uranix, 20 Июня 2013

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