Swiftgram/TelegramCore/MemoryBufferExtensions.swift
2017-03-10 21:43:11 +03:00

27 lines
842 B
Swift

import Foundation
#if os(macOS)
import PostboxMac
#else
import Postbox
#endif
public extension MemoryBuffer {
public 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)
}
}