Size: a a a

Rust — русскоговорящее сообществo

2020 December 09

p

polunin.ai in Rust — русскоговорящее сообществo
да, уникью. тогда уб 100%.
источник

KK

Kirill (Cykooz) Kuzm... in Rust — русскоговорящее сообществo
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Kirill (Cykooz) Kuzminykh
Разве что я не уверен что capacity для Vec<i32> будет всегда в два раза больше чем capacity для Vec<f64>
UB на деаллоке будет как и сказал @p0lunin
источник

D

Denis in Rust — русскоговорящее сообществo
тут UB же, ну
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
запусти Мири (прямо на плейграунде)
источник

D

Denis in Rust — русскоговорящее сообществo
нужно сделать into_raw_parts, чтобы старый вектор сначала забыть, а потом уже конструировать новый
ну или хотя бы сделать фогет после получения указателя/капасити
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Denis
нужно сделать into_raw_parts, чтобы старый вектор сначала забыть, а потом уже конструировать новый
ну или хотя бы сделать фогет после получения указателя/капасити
это не поможет, UB на деаллоке
источник

D

Denis in Rust — русскоговорящее сообществo
а лол, там два вектора одновременно живут
источник

KK

Kirill (Cykooz) Kuzm... in Rust — русскоговорящее сообществo
Denis
нужно сделать into_raw_parts, чтобы старый вектор сначала забыть, а потом уже конструировать новый
ну или хотя бы сделать фогет после получения указателя/капасити
Но если into_raw_parts не UB, то и у меня получается не UB, т.к я делаю то же самое, только не сразу "забываю" исходный вектор, а какое-то время его использую.
источник

D

Denis in Rust — русскоговорящее сообществo
🤷‍♀️
источник

D

Denis in Rust — русскоговорящее сообществo
Kirill (Cykooz) Kuzminykh
Но если into_raw_parts не UB, то и у меня получается не UB, т.к я делаю то же самое, только не сразу "забываю" исходный вектор, а какое-то время его использую.
ну дык в этом и есть разница же ключевая
источник

p

polunin.ai in Rust — русскоговорящее сообществo
источник

p

polunin.ai in Rust — русскоговорящее сообществo
у тебя тоже. УБ на деаллоке.
источник

D

Denis in Rust — русскоговорящее сообществo
а лол, так проблема-то ваще в лейауте по факту, мды
источник

KK

Kirill (Cykooz) Kuzm... in Rust — русскоговорящее сообществo
Вот реализация и пример использования into_raw_parts (так же как у меня - поменять тип данных в векторе):
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Kirill (Cykooz) Kuzminykh
Вот реализация и пример использования into_raw_parts (так же как у меня - поменять тип данных в векторе):
там layout одинаковый
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Kirill (Cykooz) Kuzminykh
Вот реализация и пример использования into_raw_parts (так же как у меня - поменять тип данных в векторе):
и32 и у32 имеют алигн одинаковый
источник

D

Denis in Rust — русскоговорящее сообществo
можно проблему с выравниванием обойти через обёртку кстати
источник

KK

Kirill (Cykooz) Kuzm... in Rust — русскоговорящее сообществo
вафель 🧇
там layout одинаковый
Ну вот разве что это меня и смущает. Но фактически это влияет только на  capacity нового вектора. И вероятно его можно как-то правильно посчитать, а не просто умножать на 2
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Kirill (Cykooz) Kuzminykh
Ну вот разве что это меня и смущает. Но фактически это влияет только на  capacity нового вектора. И вероятно его можно как-то правильно посчитать, а не просто умножать на 2
у тебя уб из-за этого :\
источник