Swiftgram/submodules/TelegramCore/Sources/Utils/MemoryBufferExtensions.swift
2021-07-07 01:59:12 +04:00

25 lines
802 B
Swift

import Foundation
import Postbox
import TelegramApi
public extension MemoryBuffer {
convenience init(_ buffer: Buffer) {
let memory = malloc(Int(buffer.size))!
memcpy(memory, buffer.data, Int(buffer.size))
self.init(memory: memory, capacity: Int(buffer.size), length: Int(buffer.size), freeWhenDone: true)
}
}
extension Buffer {
convenience init(bufferNoCopy: MemoryBuffer) {
self.init(memory: bufferNoCopy.memory, size: bufferNoCopy.length, capacity: bufferNoCopy.length, freeWhenDone: false)
}
convenience init(buffer: MemoryBuffer) {
let memory = malloc(buffer.length)!
memcpy(memory, buffer.memory, buffer.length)
self.init(memory: memory, size: buffer.length, capacity: buffer.length, freeWhenDone: true)
}
}