1. Си / Говнокод #28922

    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
    struct HashArrayMap {
    
    	struct Node
    	{
    		Key k;
    		Value v;
    
    		Node(const Key &key, const Value &value) :
    			k(key), v(value){}
    		Node(const Key &key) :
    			k(key), v(){}
    	};
    
    	constexpr static size_t TblSize = 1U << TblPower;
    	GrowArray<Node> table[TblSize];
    
    	HashArrayMap() {
    	}
    
    	~HashArrayMap() {
    	}
    
    	size_t HashFunc(const Key &key) const
    	{
    		/// TODO: string hash?
    		// handle hash: handle pointers usually aligned
    		return (((size_t) key) >> 8)  & (TblSize - 1);
    	}
    
    	// just in case: check existance or constant access
    	Value *GetPtr(const Key &key) const
    	{
    		size_t hashValue = HashFunc(key);
    		const GrowArray<Node> &entry = table[hashValue];
    		for(int i = 0; i < entry.count; i++)
    		{
    			if(entry[i].k == key)
    				return &entry[i].v;
    		}
    		return nullptr;
    	}
    
    	Value &operator [] (const Key &key)
    	{
    		return GetOrAllocate(key);
    	}
    
    #define HASHFIND(key) \
    	GrowArray<Node> &entry = table[HashFunc(key)]; \
    	int i; \
    	for(i = 0; i < entry.count; i++) \
    		if( entry[i].k == key ) \
    			break;
    
    	Value& GetOrAllocate(const Key &key)
    	{
    		HASHFIND(key);
    		if(i == entry.count )
    			entry.Add(Node(key));
    
    		return entry[i].v;
    	}
    
    	bool Remove(const Key &key)
    	{
    		HASHFIND(key);
    		if(i != entry.count)
    		{
    			entry.RemoveAt(i);
    			return true;
    		}
    		return false;
    	}
    #undef HASHFIND
    };

    когда СГОРЕЛО от STL

    mittorn, 04 Марта 2024

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

    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
    template<class T>
    struct GrowArray
    {
    	T *mem = nullptr;
    	size_t count = 0;
    	size_t alloc = 0;
    
    	GrowArray(size_t init = 0)
    	{
    		if(init)
    			Grow(init);
    	}
    	~GrowArray()
    	{
    		if(mem)
    			free(mem);
    		mem = nullptr;
    		count = 0;
    		alloc = 0;
    	}
    
    	// non-copyable
    	GrowArray(const GrowArray &) = delete;
    	GrowArray &operator = (const GrowArray &) = delete;
    
    	void noinline Grow(size_t size)
    	{
    		if(!size)
    			size = 32;
    		T *newMem = (T*)(mem? realloc(mem, sizeof(T) * size): malloc(sizeof(T)*size));
    
    		if(!newMem)
    			return;
    
    		alloc = size;
    		mem = newMem;
    	}
    
    	// TODO: insert/append
    	bool Add(const T& newVal)
    	{
    		size_t newIdx = count + 1;
    		if(unlikely(newIdx > alloc))
    			Grow(alloc * 2);
    		if(unlikely(newIdx > alloc))
    			return false;
    		mem[count] = newVal;
    		count = newIdx;
    		return true;
    	}
    
    	// TODO: test
    	bool RemoveAt(size_t idx)
    	{
    		if(idx < count)
    			memmove(&mem[idx], &mem[idx+1], sizeof(T) * (count - idx - 1));
    		if(idx <= count)
    		{
    			count--;
    			return true;
    		}
    		return false;
    	}
    	T& operator[](size_t i) const
    	{
    		return mem[i];
    	}
    };

    mittorn, 04 Марта 2024

    Комментарии (0)
  3. JavaScript / Говнокод #28920

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    export type ReplaceNullToUndefined<T> = T extends (infer R)[]
    	? ReplaceNullToUndefined<R>[]
    	: T extends object
    		? {
    				[K in keyof T]: T[K] extends object
    					? ReplaceNullToUndefined<T[K]>
    					: null extends T[K]
    						? Exclude<T[K], null> | undefined
    						: T[K];
    			}
    		: T;

    Заменяет все `null` на `undefined`

    Maligosus, 04 Марта 2024

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    $tempname = '__temp__.apk';
    copy($origname, $tempname);
    exec('C:\Android\android-sdk\build-tools\34.0.0\aapt.exe dump badging ' . '"'.$tempname.'"', $output);
    unlink($tempname);

    Понадобилось по-быстрому наговнякать переименоватор apk-файлов. Решил метушню из манифеста вытянуть с помощью «aapt» из официальных «Android build tools». Оказалось, что «aapt» не может открыть файл, если его имя содержит символы за пределами базового ASCII. CHCP не помогает вообще никак.

    При передаче в aapt имени в 866 выводится «asset... Asset path... is neither a directory nor file (type=1)», при передаче имени в других кодировках (1251, UTF-8) выводится сообщение «ziparchive... Invalid byte sequence». Так и не смог подобрать кодировку, в которой заработает.

    Шёл 2024-й год.

    nemyx, 04 Марта 2024

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

    0

    1. 1
    Пиздец-оффтоп #97

    #67: (vanished) https://govnokod.xyz/_28615
    #68: https://govnokod.ru/28636 https://govnokod.xyz/_28636
    #69: (vanished) https://govnokod.xyz/_28660
    #70: (vanished) https://govnokod.xyz/_28667
    #71: https://govnokod.ru/28677 https://govnokod.xyz/_28677
    #72: https://govnokod.ru/28685 https://govnokod.xyz/_28685
    #73: https://govnokod.ru/28692 https://govnokod.xyz/_28692
    #74: https://govnokod.ru/28699 https://govnokod.xyz/_28699
    #75: https://govnokod.ru/28705 https://govnokod.xyz/_28705
    #76: https://govnokod.ru/28712 https://govnokod.xyz/_28712
    #77: https://govnokod.ru/28722 https://govnokod.xyz/_28722
    #78: https://govnokod.ru/28730 https://govnokod.xyz/_28730
    #79: https://govnokod.ru/28736 https://govnokod.xyz/_28736
    #80: https://govnokod.ru/28740 https://govnokod.xyz/_28740
    #81: https://govnokod.ru/28750 https://govnokod.xyz/_28750
    #82: https://govnokod.ru/28779 https://govnokod.xyz/_28779
    #83: https://govnokod.ru/28788 https://govnokod.xyz/_28788
    #84: https://govnokod.ru/28795 https://govnokod.xyz/_28795
    #85: https://govnokod.ru/28808 https://govnokod.xyz/_28808
    #86: (vanished) https://govnokod.xyz/_28814
    #87: https://govnokod.ru/28817 https://govnokod.xyz/_28817
    #88: https://govnokod.ru/28836 https://govnokod.xyz/_28836
    #89: https://govnokod.ru/28843 https://govnokod.xyz/_28843
    #90: https://govnokod.ru/28874 https://govnokod.xyz/_28874
    #91: https://govnokod.ru/28880 https://govnokod.xyz/_28880
    #92: https://govnokod.ru/28884 https://govnokod.xyz/_28884
    #93: https://govnokod.ru/28889 https://govnokod.xyz/_28889
    #94: https://govnokod.ru/28895 https://govnokod.xyz/_28895
    #95: https://govnokod.ru/28904 https://govnokod.xyz/_28904
    #96: https://govnokod.ru/28912 https://govnokod.xyz/_28912

    nepeKamHblu_nemyx, 29 Февраля 2024

    Комментарии (462)
  6. Куча / Говнокод #28917

    −1

    1. 1
    IT Оффтоп #195

    #165: https://govnokod.ru/28557 https://govnokod.xyz/_28557
    #166: https://govnokod.ru/28574 https://govnokod.xyz/_28574
    #167: https://govnokod.ru/28588 https://govnokod.xyz/_28588
    #168: https://govnokod.ru/28607 https://govnokod.xyz/_28607
    #169: https://govnokod.ru/28628 https://govnokod.xyz/_28628
    #170: https://govnokod.ru/28653 https://govnokod.xyz/_28653
    #171: (vanished) https://govnokod.xyz/_28665
    #172: https://govnokod.ru/28675 https://govnokod.xyz/_28675
    #173: https://govnokod.ru/28681 https://govnokod.xyz/_28681
    #174: https://govnokod.ru/28689 https://govnokod.xyz/_28689
    #175: https://govnokod.ru/28696 https://govnokod.xyz/_28696
    #176: https://govnokod.ru/28703 https://govnokod.xyz/_28703
    #177: https://govnokod.ru/28709 https://govnokod.xyz/_28709
    #178: https://govnokod.ru/28716 https://govnokod.xyz/_28716
    #179: https://govnokod.ru/28726 https://govnokod.xyz/_28726
    #180: https://govnokod.ru/28734 https://govnokod.xyz/_28734
    #181: https://govnokod.ru/28739 https://govnokod.xyz/_28739
    #182: https://govnokod.ru/28749 https://govnokod.xyz/_28749
    #183: https://govnokod.ru/28777 https://govnokod.xyz/_28777
    #184: https://govnokod.ru/28790 https://govnokod.xyz/_28790
    #185: https://govnokod.ru/28794 https://govnokod.xyz/_28794
    #186: https://govnokod.ru/28815 https://govnokod.xyz/_28815
    #187: https://govnokod.ru/28833 https://govnokod.xyz/_28833
    #188: https://govnokod.ru/28837 https://govnokod.xyz/_28837
    #189: https://govnokod.ru/28840 https://govnokod.xyz/_28840
    #190: https://govnokod.ru/28875 https://govnokod.xyz/_28875
    #191: https://govnokod.ru/28878 https://govnokod.xyz/_28878
    #192: https://govnokod.ru/28886 https://govnokod.xyz/_28886
    #193: https://govnokod.ru/28911 https://govnokod.xyz/_28911
    #194: https://govnokod.ru/28914 https://govnokod.xyz/_28914

    nepeKamHblu_nemyx, 24 Февраля 2024

    Комментарии (422)
  7. Си / Говнокод #28916

    0

    1. 1
    С днём защитника жопы Борманда вас, питухи!

    День защитника Путина.

    bormandinho, 23 Февраля 2024

    Комментарии (63)
  8. JavaScript / Говнокод #28915

    +1

    1. 1
    React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED

    ISO, 18 Февраля 2024

    Комментарии (49)
  9. Куча / Говнокод #28914

    0

    1. 1
    IT Оффтоп #194

    #164: https://govnokod.ru/28527 https://govnokod.xyz/_28527
    #165: https://govnokod.ru/28557 https://govnokod.xyz/_28557
    #166: https://govnokod.ru/28574 https://govnokod.xyz/_28574
    #167: https://govnokod.ru/28588 https://govnokod.xyz/_28588
    #168: https://govnokod.ru/28607 https://govnokod.xyz/_28607
    #169: https://govnokod.ru/28628 https://govnokod.xyz/_28628
    #170: https://govnokod.ru/28653 https://govnokod.xyz/_28653
    #171: (vanished) https://govnokod.xyz/_28665
    #172: https://govnokod.ru/28675 https://govnokod.xyz/_28675
    #173: https://govnokod.ru/28681 https://govnokod.xyz/_28681
    #174: https://govnokod.ru/28689 https://govnokod.xyz/_28689
    #175: https://govnokod.ru/28696 https://govnokod.xyz/_28696
    #176: https://govnokod.ru/28703 https://govnokod.xyz/_28703
    #177: https://govnokod.ru/28709 https://govnokod.xyz/_28709
    #178: https://govnokod.ru/28716 https://govnokod.xyz/_28716
    #179: https://govnokod.ru/28726 https://govnokod.xyz/_28726
    #180: https://govnokod.ru/28734 https://govnokod.xyz/_28734
    #181: https://govnokod.ru/28739 https://govnokod.xyz/_28739
    #182: https://govnokod.ru/28749 https://govnokod.xyz/_28749
    #183: https://govnokod.ru/28777 https://govnokod.xyz/_28777
    #184: https://govnokod.ru/28790 https://govnokod.xyz/_28790
    #185: https://govnokod.ru/28794 https://govnokod.xyz/_28794
    #186: https://govnokod.ru/28815 https://govnokod.xyz/_28815
    #187: https://govnokod.ru/28833 https://govnokod.xyz/_28833
    #188: https://govnokod.ru/28837 https://govnokod.xyz/_28837
    #189: https://govnokod.ru/28840 https://govnokod.xyz/_28840
    #190: https://govnokod.ru/28875 https://govnokod.xyz/_28875
    #191: https://govnokod.ru/28878 https://govnokod.xyz/_28878
    #192: https://govnokod.ru/28886 https://govnokod.xyz/_28886
    #193: https://govnokod.ru/28911 https://govnokod.xyz/_28911

    nepeKamHblu_nemyx, 15 Февраля 2024

    Комментарии (475)
  10. Python / Говнокод #28913

    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
    import sys
    
    
    def do_govno(govno: str) -> None:
        pass
    
    
    def main() -> int:
        if len(sys.argv) != 2:
            print(f'Usage: {sys.argv[0]} <govno>')
            return EXIT_FAILURE
        
        govno = sys.argv[1]
        do_govno(govno)
        
        return EXIT_SUCCESS
    
    
    if __name__ == '__main__':
        exit_code = main()
        sys.exit(exit_code)

    ISO, 13 Февраля 2024

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