Is there something wrong with the hash function of mlt_properties_add?
zxfskr opened this issue · 2 comments
zxfskr commented
ddennedy commented
Do not reproduce here using gcc 13 via msys2
[Debug ] <MLT> mlt_properties_add: key 73 name: MLT_NORMALISATION
[Debug ] <MLT> mlt_properties_add: key 130 name: MLT_PRODUCER
[Debug ] <MLT> mlt_properties_add: key 73 name: MLT_CONSUMER
[Debug ] <MLT> mlt_properties_add: key 34 name: MLT_TEST_CARD
[Debug ] <MLT> mlt_properties_add: key 111 name: MLT_PROFILE
[Debug ] <MLT> mlt_properties_add: key 146 name: MLT_DATA
[Debug ] <MLT> mlt_properties_add: key 121 name: 8
[Debug ] <MLT> mlt_properties_add: key 122 name: 9
[Debug ] <MLT> mlt_properties_add: key 29 name: 10
[Debug ] <MLT> mlt_properties_add: key 30 name: 11
[Debug ] <MLT> mlt_properties_add: key 31 name: 12
[Debug ] <MLT> mlt_properties_add: key 32 name: 13
[Debug ] <MLT> mlt_properties_add: key 33 name: 14
[Debug ] <MLT> mlt_properties_add: key 34 name: 15
[Debug ] <MLT> mlt_properties_add: key 35 name: 16
[Debug ] <MLT> mlt_properties_add: key 36 name: 17
[Debug ] <MLT> mlt_properties_add: key 37 name: 18
[Debug ] <MLT> mlt_properties_add: key 38 name: 19
[Debug ] <MLT> mlt_properties_add: key 62 name: 20
[Debug ] <MLT> mlt_properties_add: key 63 name: 21
[Debug ] <MLT> mlt_properties_add: key 64 name: 22
[Debug ] <MLT> mlt_properties_add: key 65 name: 23
[Debug ] <MLT> mlt_properties_add: key 66 name: 24
[Debug ] <MLT> mlt_properties_add: key 67 name: 25
[Debug ] <MLT> mlt_properties_add: key 68 name: 26
[Debug ] <MLT> mlt_properties_add: key 69 name: 27
[Debug ] <MLT> mlt_properties_add: key 70 name: 28
[Debug ] <MLT> mlt_properties_add: key 71 name: 29
[Debug ] <MLT> mlt_properties_add: key 95 name: 30
[Debug ] <MLT> mlt_properties_add: key 91 name: _events
[Debug ] <MLT> mlt_properties_add: key 100 name: list:producer-create-request
[Debug ] <MLT> mlt_properties_add: key 32 name: list:producer-create-done
[Debug ] <MLT> mlt_properties_add: key 69 name: list:filter-create-request
[Debug ] <MLT> mlt_properties_add: key 122 name: list:filter-create-done
[Debug ] <MLT> mlt_properties_add: key 153 name: list:transition-create-request
[Debug ] <MLT> mlt_properties_add: key 158 name: list:transition-create-done
[Debug ] <MLT> mlt_properties_add: key 65 name: list:consumer-create-request
[Debug ] <MLT> mlt_properties_add: key 139 name: list:consumer-create-done
[Debug ] <MLT> mlt_properties_add: key 113 name: 0
[Debug ] <MLT> mlt_properties_add: key 114 name: 1
[Debug ] <MLT> mlt_properties_add: key 115 name: 2
[Debug ] <MLT> mlt_properties_add: key 116 name: 3
[Debug ] <MLT> mlt_properties_add: key 117 name: 4
[Debug ] <MLT> mlt_properties_add: key 118 name: 5
[Debug ] <MLT> mlt_properties_add: key 119 name: 6
[Debug ] <MLT> mlt_properties_add: key 120 name: 7
[Debug ] <MLT> mlt_properties_add: key 121 name: 8
[Debug ] <MLT> mlt_properties_add: key 122 name: 9
[Debug ] <MLT> mlt_properties_add: key 29 name: 10
[Debug ] <MLT> mlt_properties_add: key 30 name: 11
[Debug ] <MLT> mlt_properties_add: key 31 name: 12
[Debug ] <MLT> mlt_properties_add: key 32 name: 13
[Debug ] <MLT> mlt_properties_add: key 33 name: 14
[Debug ] <MLT> mlt_properties_add: key 34 name: 15
[Debug ] <MLT> mlt_properties_add: key 35 name: 16
[Debug ] <MLT> mlt_properties_add: key 36 name: 17
[Debug ] <MLT> mlt_properties_add: key 37 name: 18
[Debug ] <MLT> mlt_properties_add: key 38 name: 19
[Debug ] <MLT> mlt_properties_add: key 62 name: 20
[Debug ] <MLT> mlt_properties_add: key 63 name: 21
[Debug ] <MLT> mlt_properties_add: key 64 name: 22
[Debug ] <MLT> mlt_properties_add: key 65 name: 23
[Debug ] <MLT> mlt_properties_add: key 66 name: 24
[Debug ] <MLT> mlt_properties_add: key 67 name: 25
[Debug ] <MLT> mlt_properties_add: key 68 name: 26
[Debug ] <MLT> mlt_properties_add: key 69 name: 27
[Debug ] <MLT> mlt_properties_add: key 70 name: 28
[Debug ] <MLT> mlt_properties_add: key 133 name: symbol
[Debug ] <MLT> mlt_properties_add: key 37 name: gtkrescale
[Debug ] <MLT> mlt_properties_add: key 133 name: symbol
[Debug ] <MLT> mlt_properties_add: key 37 name: gtkrescale
[Debug ] <MLT> mlt_properties_add: key 133 name: symbol
[Debug ] <MLT> mlt_properties_add: key 91 name: pango
[Debug ] <MLT> mlt_properties_add: key 133 name: symbol
[Debug ] <MLT> mlt_properties_add: key 173 name: pixbuf
bmatherly commented
There are only 256 possible hash keys. So the collision probability is high. That is OK and expected - which is why the find function performs a full search if the optimized hash search fails to find the correct property.
Even in Dan's example I see:
[Debug ] <MLT> mlt_properties_add: key 37 name: 18
...
[Debug ] <MLT> mlt_properties_add: key 37 name: gtkrescale



