This is an automated email from the ASF dual-hosted git repository.

raulcd pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-swift.git

commit 733617512d1adfb9818a04ab1a92efbac34e4562
Author: abandy <[email protected]>
AuthorDate: Mon Jun 17 21:33:43 2024 -0400

    GH-42087: [Swift] refactored to remove build warnings (#42088)
    
    ### Rationale for this change
    Building warnings were being generated from the swift code.
    
    ### What changes are included in this PR?
    Refactored the code in ArrowCExporter and CodableTests to remove the build 
warnings.
    
    ### Are these changes tested?
    Yes, also ran CDataWGo tests locally to test CData interface changes.
    
    * GitHub Issue: #42087
    
    Authored-by: Alva Bandy <[email protected]>
    Signed-off-by: Sutou Kouhei <[email protected]>
---
 Arrow/Package.swift                       | 17 ++++++++++++++---
 Arrow/Sources/Arrow/ArrowCExporter.swift  | 10 ++++++++--
 Arrow/Tests/ArrowTests/CodableTests.swift |  2 +-
 ArrowFlight/Package.swift                 | 12 ++++++++++--
 4 files changed, 33 insertions(+), 8 deletions(-)

diff --git a/Arrow/Package.swift b/Arrow/Package.swift
index 6f19136..6944d7b 100644
--- a/Arrow/Package.swift
+++ b/Arrow/Package.swift
@@ -44,16 +44,27 @@ let package = Package(
     targets: [
         .target(
             name: "ArrowC",
-            path: "Sources/ArrowC"
+            path: "Sources/ArrowC",
+            swiftSettings: [
+                .unsafeFlags(["-warnings-as-errors"])
+            ]
         ),
         .target(
             name: "Arrow",
             dependencies: ["ArrowC",
                 .product(name: "FlatBuffers", package: "flatbuffers"),
                 .product(name: "Atomics", package: "swift-atomics")
-            ]),
+            ],
+            swiftSettings: [
+                .unsafeFlags(["-warnings-as-errors"])
+            ]
+        ),
         .testTarget(
             name: "ArrowTests",
-            dependencies: ["Arrow", "ArrowC"])
+            dependencies: ["Arrow", "ArrowC"],
+            swiftSettings: [
+                .unsafeFlags(["-warnings-as-errors"])
+            ]
+        )
     ]
 )
diff --git a/Arrow/Sources/Arrow/ArrowCExporter.swift 
b/Arrow/Sources/Arrow/ArrowCExporter.swift
index aa93f0c..f2dd8ab 100644
--- a/Arrow/Sources/Arrow/ArrowCExporter.swift
+++ b/Arrow/Sources/Arrow/ArrowCExporter.swift
@@ -61,12 +61,18 @@ public class ArrowCExporter {
             // deallocated
             self.arrowData = arrowData
             for arrowBuffer in arrowData.buffers {
-                data.append(arrowBuffer.rawPointer)
+                self.data.append(arrowBuffer.rawPointer)
             }
 
-            self.buffers = UnsafeMutablePointer(mutating: data)
+            self.buffers = 
UnsafeMutablePointer<UnsafeRawPointer?>.allocate(capacity: self.data.count)
+            self.buffers.initialize(from: &self.data, count: self.data.count)
             super.init()
         }
+
+        deinit {
+            self.buffers.deinitialize(count: self.data.count)
+            self.buffers.deallocate()
+        }
     }
 
     private static var exportedData = [Int: ExportData]()
diff --git a/Arrow/Tests/ArrowTests/CodableTests.swift 
b/Arrow/Tests/ArrowTests/CodableTests.swift
index d7d3414..160beea 100644
--- a/Arrow/Tests/ArrowTests/CodableTests.swift
+++ b/Arrow/Tests/ArrowTests/CodableTests.swift
@@ -98,7 +98,7 @@ final class CodableTests: XCTestCase {
         switch result {
         case .success(let rb):
             let decoder = ArrowDecoder(rb)
-            var testClasses = try decoder.decode(TestClass.self)
+            let testClasses = try decoder.decode(TestClass.self)
             for index in 0..<testClasses.count {
                 let testClass = testClasses[index]
                 XCTAssertEqual(testClass.propBool, index % 2 == 0 ? false : 
true)
diff --git a/ArrowFlight/Package.swift b/ArrowFlight/Package.swift
index 629b830..f4d6485 100644
--- a/ArrowFlight/Package.swift
+++ b/ArrowFlight/Package.swift
@@ -45,9 +45,17 @@ let package = Package(
                 .product(name: "Arrow", package: "Arrow"),
                 .product(name: "GRPC", package: "grpc-swift"),
                 .product(name: "SwiftProtobuf", package: "swift-protobuf")
-            ]),
+            ],
+            swiftSettings: [
+                .unsafeFlags(["-warnings-as-errors"])
+            ]
+        ),
         .testTarget(
             name: "ArrowFlightTests",
-            dependencies: ["ArrowFlight"])
+            dependencies: ["ArrowFlight"],
+            swiftSettings: [
+                .unsafeFlags(["-warnings-as-errors"])
+            ]
+        )
     ]
 )

Reply via email to