1
Я хочу обнулить содержимое UnsafeMutablePointer
в Swift.Swift: Как убедиться, что код не оптимизирован?
В C вы обычно что-то вроде этого:
void freeSecure(void *buffer, uint64_t size) {
// Create volatile pointer to make sure that the code won't be optimized away
volatile uint8_t *ptr = buffer;
for (uint64_t i = 0; i < size; i++) ptr[i] = 0x00;
free(buffer);
}
Как я могу достичь того же в Swift?
// Is extension of `UnsafeMutablePointer`
public func KC_dealloc(allocated: Int) {
if num == 0 {
self.destroy()
self.dealloc(allocated)
return
}
let byteCount = sizeof(Memory) * allocated
let ptr = UnsafeMutablePointer<UInt8>(self) // volatile???
for var i = 0; i < byteCount; i++ {
ptr[i] = 0x00
}
self.destroy()
self.dealloc(allocated)
}
Пытались это вы? – nhgrif
Это мой фактический код, но я не знаю, действительно ли он обнуляет данные или удаляет часть, потому что данные больше не будут прочитаны ... –