Skip to content

Commit 4382e42

Browse files
committed
move trace functions into SwiftKit; avoid regenerating
1 parent 0b20fbc commit 4382e42

File tree

2 files changed

+31
-52
lines changed

2 files changed

+31
-52
lines changed

Sources/JExtractSwift/Swift2JavaTranslator+Printing.swift

Lines changed: 6 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -267,9 +267,6 @@ extension Swift2JavaTranslator {
267267
// Layout of the class
268268
printClassMemoryLayout(&printer, decl)
269269

270-
// Render the 'trace' functions etc
271-
printTraceFunctionDecls(&printer)
272-
273270
body(&printer)
274271
}
275272
}
@@ -282,9 +279,6 @@ extension Swift2JavaTranslator {
282279
printClassConstants(printer: &printer)
283280
printTypeMappingDecls(&printer)
284281

285-
// Render the 'trace' functions etc
286-
printTraceFunctionDecls(&printer)
287-
288282
printer.print(
289283
"""
290284
static MemorySegment findOrThrow(String symbol) {
@@ -443,40 +437,6 @@ extension Swift2JavaTranslator {
443437
)
444438
}
445439

446-
public func printTraceFunctionDecls(_ printer: inout CodePrinter) {
447-
printer.print(
448-
"""
449-
static final boolean TRACE_DOWNCALLS = Boolean.getBoolean("jextract.trace.downcalls");
450-
451-
static void traceDowncall(Object... args) {
452-
var ex = new RuntimeException();
453-
454-
String traceArgs = Arrays.stream(args)
455-
.map(Object::toString)
456-
.collect(Collectors.joining(", "));
457-
System.out.printf("[java][%s:%d] Downcall: %s(%s)\\n",
458-
ex.getStackTrace()[2].getFileName(),
459-
ex.getStackTrace()[2].getLineNumber(),
460-
ex.getStackTrace()[2].getMethodName(),
461-
traceArgs);
462-
}
463-
464-
static void trace(Object... args) {
465-
var ex = new RuntimeException();
466-
467-
String traceArgs = Arrays.stream(args)
468-
.map(Object::toString)
469-
.collect(Collectors.joining(", "));
470-
System.out.printf("[java][%s:%d] %s: %s\\n",
471-
ex.getStackTrace()[2].getFileName(),
472-
ex.getStackTrace()[2].getLineNumber(),
473-
ex.getStackTrace()[2].getMethodName(),
474-
traceArgs);
475-
}
476-
"""
477-
)
478-
}
479-
480440
public func printClassConstructors(_ printer: inout CodePrinter, _ decl: ImportedFunc) {
481441
guard let parentName = decl.parent else {
482442
fatalError("init must be inside a parent type! Was: \(decl)")
@@ -524,8 +484,8 @@ extension Swift2JavaTranslator {
524484
public \(parentName.unqualifiedJavaTypeName)(SwiftArena arena, \(renderJavaParamDecls(decl, paramPassingStyle: .wrapper))) {
525485
var mh$ = \(descClassIdentifier).HANDLE;
526486
try {
527-
if (TRACE_DOWNCALLS) {
528-
traceDowncall(\(renderForwardJavaParams(decl, paramPassingStyle: nil)));
487+
if (SwiftKit.TRACE_DOWNCALLS) {
488+
SwiftKit.traceDowncall(\(renderForwardJavaParams(decl, paramPassingStyle: nil)));
529489
}
530490
531491
this.selfMemorySegment = (MemorySegment) mh$.invokeExact(\(renderForwardJavaParams(decl, paramPassingStyle: nil)), TYPE_METADATA.$memorySegment());
@@ -756,8 +716,8 @@ extension Swift2JavaTranslator {
756716
\(renderUpcallHandles(decl))
757717
""",
758718
"""
759-
if (TRACE_DOWNCALLS) {
760-
traceDowncall(\(renderForwardJavaParams(decl, paramPassingStyle: .memorySegment)));
719+
if (SwiftKit.TRACE_DOWNCALLS) {
720+
SwiftKit.traceDowncall(\(renderForwardJavaParams(decl, paramPassingStyle: .memorySegment)));
761721
}
762722
\(maybeReturnCast) mh$.invokeExact(\(renderForwardJavaParams(decl, paramPassingStyle: paramPassingStyle)));
763723
} catch (Throwable ex$) {
@@ -809,8 +769,8 @@ extension Swift2JavaTranslator {
809769
public static \(returnTy) \(decl.baseIdentifier)(\(renderJavaParamDecls(decl, paramPassingStyle: paramPassingStyle))) {
810770
var mh$ = \(decl.baseIdentifier).HANDLE;
811771
try {
812-
if (TRACE_DOWNCALLS) {
813-
traceDowncall(\(renderForwardJavaParams(decl, paramPassingStyle: .memorySegment)));
772+
if (SwiftKit.TRACE_DOWNCALLS) {
773+
SwiftKit.traceDowncall(\(renderForwardJavaParams(decl, paramPassingStyle: .memorySegment)));
814774
}
815775
\(maybeReturnCast) mh$.invokeExact(\(renderForwardJavaParams(decl, paramPassingStyle: paramPassingStyle)));
816776
} catch (Throwable ex$) {

SwiftKit/src/main/java/org/swift/swiftkit/SwiftKit.java

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,31 @@ private static SymbolLookup getSymbolLookup() {
6262
public SwiftKit() {
6363
}
6464

65-
static void traceDowncall(String name, Object... args) {
66-
String traceArgs = Arrays.stream(args)
67-
.map(Object::toString)
68-
.collect(Collectors.joining(", "));
69-
System.out.printf("[java] Downcall: %s(%s)\n", name, traceArgs);
70-
}
65+
public static void traceDowncall(Object... args) {
66+
var ex = new RuntimeException();
67+
68+
String traceArgs = Arrays.stream(args)
69+
.map(Object::toString)
70+
.collect(Collectors.joining(", "));
71+
System.out.printf("[java][%s:%d] Downcall: %s(%s)\n",
72+
ex.getStackTrace()[1].getFileName(),
73+
ex.getStackTrace()[1].getLineNumber(),
74+
ex.getStackTrace()[1].getMethodName(),
75+
traceArgs);
76+
}
77+
78+
public static void trace(Object... args) {
79+
var ex = new RuntimeException();
80+
81+
String traceArgs = Arrays.stream(args)
82+
.map(Object::toString)
83+
.collect(Collectors.joining(", "));
84+
System.out.printf("[java][%s:%d] %s: %s\n",
85+
ex.getStackTrace()[1].getFileName(),
86+
ex.getStackTrace()[1].getLineNumber(),
87+
ex.getStackTrace()[1].getMethodName(),
88+
traceArgs);
89+
}
7190

7291
static MemorySegment findOrThrow(String symbol) {
7392
return SYMBOL_LOOKUP.find(symbol)

0 commit comments

Comments
 (0)