mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-01 19:58:15 +00:00
[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:
committed by
Wouter van Oortmerssen
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),
|
||||
|
||||
Reference in New Issue
Block a user