Skip to content

Commit 3a43aa2

Browse files
committed
[stdlib] fix return type of getNumRuntimeFunctionCounters
The return type of getNumRuntimeFunctionCounters is defined as uint64_t in RuntimeInvocationsTracking.cpp, but it has return type Int in RuntimeFunctionCounters.swift. Found when compiling the stdlib for WebAssembly, as WebAssembly validates return types. uint64_t corresponds to i64, but Int is i32, so the program fails validation.
1 parent a9ba1ce commit 3a43aa2

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

stdlib/public/core/RuntimeFunctionCounters.swift

+4-4
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ struct _RuntimeFunctionCounters {
108108
public static let runtimeFunctionCountersOffsets =
109109
_RuntimeFunctionCounters.getRuntimeFunctionCountersOffsets()
110110
public static let numRuntimeFunctionCounters =
111-
_RuntimeFunctionCounters.getNumRuntimeFunctionCounters()
111+
Int(_RuntimeFunctionCounters.getNumRuntimeFunctionCounters())
112112
public static let runtimeFunctionNameToIndex: [String : Int] =
113113
getRuntimeFunctionNameToIndex()
114114

@@ -121,7 +121,7 @@ struct _RuntimeFunctionCounters {
121121
public static func getRuntimeFunctionNames() -> [String] {
122122
let names = _RuntimeFunctionCounters._getRuntimeFunctionNames()
123123
let numRuntimeFunctionCounters =
124-
_RuntimeFunctionCounters.getNumRuntimeFunctionCounters()
124+
Int(_RuntimeFunctionCounters.getNumRuntimeFunctionCounters())
125125
var functionNames : [String] = []
126126
functionNames.reserveCapacity(numRuntimeFunctionCounters)
127127
for index in 0..<numRuntimeFunctionCounters {
@@ -140,7 +140,7 @@ struct _RuntimeFunctionCounters {
140140
/// Get the number of different runtime functions whose calls are being
141141
/// tracked.
142142
@_silgen_name("_swift_getNumRuntimeFunctionCounters")
143-
public static func getNumRuntimeFunctionCounters() -> Int
143+
public static func getNumRuntimeFunctionCounters() -> UInt64
144144

145145
/// Dump all per-object runtime function counters.
146146
@_silgen_name("_swift_dumpObjectsRuntimeFunctionPointers")
@@ -166,7 +166,7 @@ struct _RuntimeFunctionCounters {
166166
internal static func getRuntimeFunctionNameToIndex() -> [String : Int] {
167167
let runtimeFunctionNames = _RuntimeFunctionCounters.getRuntimeFunctionNames()
168168
let numRuntimeFunctionCounters =
169-
_RuntimeFunctionCounters.getNumRuntimeFunctionCounters()
169+
Int(_RuntimeFunctionCounters.getNumRuntimeFunctionCounters())
170170
var runtimeFunctionNameToIndex : [String : Int] = [:]
171171
runtimeFunctionNameToIndex.reserveCapacity(numRuntimeFunctionCounters)
172172

test/stdlib/test_runtime_function_counters.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ func testCollectReferencesInsideObject() {
100100
func testRuntimeCounters() {
101101
print("TEST: APIs from _RuntimeFunctionCounters")
102102
let numRuntimeFunctionPointer =
103-
_RuntimeFunctionCounters.getNumRuntimeFunctionCounters()
103+
Int(_RuntimeFunctionCounters.getNumRuntimeFunctionCounters())
104104

105105
print("Number of runtime function pointers: \(numRuntimeFunctionPointer)")
106106

0 commit comments

Comments
 (0)