[Swift] Fix padding function overflow when bufSize is 0 (#5721)
* [Swift] Fix padding function overflow when bufSize is 0 [Swift] Generate linuxmain * [Swift] Using the overflow addition operator to resolve integer overflow
This commit is contained in:
parent
bab2b0db48
commit
7cdfc8475e
|
@ -219,7 +219,7 @@ extension FlatBufferBuilder {
|
|||
/// - bufSize: Current size of the buffer + the offset of the object to be written
|
||||
/// - elementSize: Element size
|
||||
fileprivate func padding(bufSize: UInt32, elementSize: UInt32) -> UInt32 {
|
||||
((~bufSize) + 1) & (elementSize - 1)
|
||||
((~bufSize) &+ 1) & (elementSize - 1)
|
||||
}
|
||||
|
||||
/// Prealigns the buffer before writting a new object into the buffer
|
||||
|
|
|
@ -25,6 +25,14 @@ final class FlatBuffersVectors: XCTestCase {
|
|||
XCTAssertEqual(b.sizedByteArray, [4, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0])
|
||||
}
|
||||
|
||||
func testCreateEmptyIntArray() {
|
||||
let numbers: [Int32] = []
|
||||
let b = FlatBufferBuilder(initialSize: 20)
|
||||
let o = b.createVector(numbers, size: numbers.count)
|
||||
b.finish(offset: o)
|
||||
XCTAssertEqual(b.sizedByteArray, [4, 0, 0, 0, 0, 0, 0, 0])
|
||||
}
|
||||
|
||||
func testCreateVectorOfStrings() {
|
||||
let strs = ["Denmark", "Norway"]
|
||||
let b = FlatBufferBuilder(initialSize: 20)
|
||||
|
|
|
@ -72,6 +72,7 @@ extension FlatBuffersVectors {
|
|||
// `swift test --generate-linuxmain`
|
||||
// to regenerate.
|
||||
static let __allTests__FlatBuffersVectors = [
|
||||
("testCreateEmptyIntArray", testCreateEmptyIntArray),
|
||||
("testCreateIntArray", testCreateIntArray),
|
||||
("testCreateSharedStringVector", testCreateSharedStringVector),
|
||||
("testCreateVectorOfStrings", testCreateVectorOfStrings),
|
||||
|
|
Loading…
Reference in New Issue