@@ -61,9 +61,16 @@ final class DataImportTests {
61
61
""" ,
62
62
63
63
"""
64
- @_cdecl( " swiftjava_SwiftModule_Data_withUnsafeBytes_body " )
65
- public func swiftjava_SwiftModule_Data_withUnsafeBytes_body(_ body: @convention(c) (UnsafeRawPointer?, Int) -> Void, _ self: UnsafeRawPointer) {
66
- self.assumingMemoryBound(to: Data.self).pointee.withUnsafeBytes(body: { (_0) in
64
+ @_cdecl( " swiftjava_SwiftModule_Data_count$get " )
65
+ public func swiftjava_SwiftModule_Data_count$get(_ self: UnsafeRawPointer) -> Int {
66
+ return self.assumingMemoryBound(to: Data.self).pointee.count
67
+ }
68
+ """ ,
69
+
70
+ """
71
+ @_cdecl( " swiftjava_SwiftModule_Data_withUnsafeBytes__ " )
72
+ public func swiftjava_SwiftModule_Data_withUnsafeBytes__(_ body: @convention(c) (UnsafeRawPointer?, Int) -> Void, _ self: UnsafeRawPointer) {
73
+ self.assumingMemoryBound(to: Data.self).pointee.withUnsafeBytes({ (_0) in
67
74
return body(_0.baseAddress, _0.count)
68
75
})
69
76
}
@@ -202,21 +209,61 @@ final class DataImportTests {
202
209
"""
203
210
/**
204
211
* {@snippet lang=c :
205
- * void swiftjava_SwiftModule_Data_withUnsafeBytes_body(void (*body)(const void *, ptrdiff_t), const void *self)
212
+ * ptrdiff_t swiftjava_SwiftModule_Data_count$get(const void *self)
213
+ * }
214
+ */
215
+ private static class swiftjava_SwiftModule_Data_count$get {
216
+ private static final FunctionDescriptor DESC = FunctionDescriptor.of(
217
+ /* -> */SwiftValueLayout.SWIFT_INT,
218
+ /* self: */SwiftValueLayout.SWIFT_POINTER
219
+ );
220
+ private static final MemorySegment ADDR =
221
+ SwiftModule.findOrThrow( " swiftjava_SwiftModule_Data_count$get " );
222
+ private static final MethodHandle HANDLE = Linker.nativeLinker().downcallHandle(ADDR, DESC);
223
+ public static long call(java.lang.foreign.MemorySegment self) {
224
+ try {
225
+ if (SwiftRuntime.TRACE_DOWNCALLS) {
226
+ SwiftRuntime.traceDowncall(self);
227
+ }
228
+ return (long) HANDLE.invokeExact(self);
229
+ } catch (Throwable ex$) {
230
+ throw new AssertionError( " should not reach here " , ex$);
231
+ }
232
+ }
233
+ }
234
+ """ ,
235
+
236
+ """
237
+ /**
238
+ * Downcall to Swift:
239
+ * {@snippet lang=swift :
240
+ * public var count: Int
241
+ * }
242
+ */
243
+ public long getCount() {
244
+ $ensureAlive();
245
+ return swiftjava_SwiftModule_Data_count$get.call(this.$memorySegment());
246
+ }
247
+ """ ,
248
+
249
+ """
250
+ /**
251
+ * {@snippet lang=c :
252
+ * void swiftjava_SwiftModule_Data_withUnsafeBytes__(void (*body)(const void *, ptrdiff_t), const void *self)
206
253
* }
207
254
*/
208
- private static class swiftjava_SwiftModule_Data_withUnsafeBytes_body {
255
+ private static class swiftjava_SwiftModule_Data_withUnsafeBytes__ {
209
256
private static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
210
257
/* body: */SwiftValueLayout.SWIFT_POINTER,
211
258
/* self: */SwiftValueLayout.SWIFT_POINTER
212
259
);
213
260
private static final MemorySegment ADDR =
214
- SwiftModule.findOrThrow( " swiftjava_SwiftModule_Data_withUnsafeBytes_body " );
261
+ SwiftModule.findOrThrow( " swiftjava_SwiftModule_Data_withUnsafeBytes__ " );
215
262
private static final MethodHandle HANDLE = Linker.nativeLinker().downcallHandle(ADDR, DESC);
216
263
public static void call(java.lang.foreign.MemorySegment body, java.lang.foreign.MemorySegment self) {
217
264
try {
218
- if (SwiftKit .TRACE_DOWNCALLS) {
219
- SwiftKit .traceDowncall(body, self);
265
+ if (SwiftRuntime .TRACE_DOWNCALLS) {
266
+ SwiftRuntime .traceDowncall(body, self);
220
267
}
221
268
HANDLE.invokeExact(body, self);
222
269
} catch (Throwable ex$) {
@@ -237,7 +284,7 @@ final class DataImportTests {
237
284
/* _0: */SwiftValueLayout.SWIFT_POINTER,
238
285
/* _1: */SwiftValueLayout.SWIFT_INT
239
286
);
240
- private static final MethodHandle HANDLE = SwiftKit .upcallHandle(Function.class, " apply " , DESC);
287
+ private static final MethodHandle HANDLE = SwiftRuntime .upcallHandle(Function.class, " apply " , DESC);
241
288
private static MemorySegment toUpcallStub(Function fi, Arena arena) {
242
289
return Linker.nativeLinker().upcallStub(HANDLE.bindTo(fi), DESC, arena);
243
290
}
@@ -252,7 +299,7 @@ final class DataImportTests {
252
299
void apply(java.lang.foreign.MemorySegment _0);
253
300
}
254
301
private static MemorySegment $toUpcallStub(body fi, Arena arena) {
255
- return swiftjava_SwiftModule_Data_withUnsafeBytes_body .$body.toUpcallStub((_0_pointer, _0_count) -> {
302
+ return swiftjava_SwiftModule_Data_withUnsafeBytes__ .$body.toUpcallStub((_0_pointer, _0_count) -> {
256
303
fi.apply(_0_pointer.reinterpret(_0_count));
257
304
}, arena);
258
305
}
@@ -264,13 +311,13 @@ final class DataImportTests {
264
311
/**
265
312
* Downcall to Swift:
266
313
* {@snippet lang=swift :
267
- * public func withUnsafeBytes(body: (UnsafeRawBufferPointer) -> Void)
314
+ * public func withUnsafeBytes(_ body: (UnsafeRawBufferPointer) -> Void)
268
315
* }
269
316
*/
270
317
public void withUnsafeBytes(withUnsafeBytes.body body) {
271
318
$ensureAlive();
272
319
try(var arena$ = Arena.ofConfined()) {
273
- swiftjava_SwiftModule_Data_withUnsafeBytes_body .call(withUnsafeBytes.$toUpcallStub(body, arena$), this.$memorySegment());
320
+ swiftjava_SwiftModule_Data_withUnsafeBytes__ .call(withUnsafeBytes.$toUpcallStub(body, arena$), this.$memorySegment());
274
321
}
275
322
}
276
323
"""
0 commit comments