Skip to content

Commit 123977e

Browse files
authored
Add missing GC.@preserves. (#2487)
1 parent d72cdaa commit 123977e

File tree

4 files changed

+7
-7
lines changed

4 files changed

+7
-7
lines changed

lib/cudadrv/devices.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ function name(dev::CuDevice)
6868
buf = Vector{Cchar}(undef, buflen)
6969
cuDeviceGetName(pointer(buf), buflen, dev)
7070
buf[end] = 0
71-
return unsafe_string(pointer(buf))
71+
return GC.@preserve buf unsafe_string(pointer(buf))
7272
end
7373

7474
"""

lib/cudadrv/module.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ mutable struct CuModule
6666
ERROR_INVALID_IMAGE,
6767
ERROR_INVALID_PTX)
6868
options = decode(optionKeys, optionVals)
69-
error(unsafe_string(pointer(options[JIT_ERROR_LOG_BUFFER])))
69+
error(GC.@preserve options unsafe_string(pointer(options[JIT_ERROR_LOG_BUFFER])))
7070
else
7171
rethrow()
7272
end

lib/nvml/device.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ Base.IteratorSize(::DeviceIterator) = Base.HasLength()
5555
function name(dev::Device)
5656
buf = Vector{Cchar}(undef, NVML_DEVICE_NAME_V2_BUFFER_SIZE)
5757
nvmlDeviceGetName(dev, pointer(buf), length(buf))
58-
return unsafe_string(pointer(buf))
58+
return GC.@preserve buf unsafe_string(pointer(buf))
5959
end
6060

6161
function brand(dev::Device)
@@ -67,15 +67,15 @@ end
6767
function uuid(dev::Device)
6868
buf = Vector{Cchar}(undef, NVML_DEVICE_UUID_V2_BUFFER_SIZE)
6969
nvmlDeviceGetUUID(dev, pointer(buf), length(buf))
70-
uuid_str = unsafe_string(pointer(buf))
70+
uuid_str = GC.@preserve buf unsafe_string(pointer(buf))
7171
@assert startswith(uuid_str, "GPU-") || startswith(uuid_str, "MIG-")
7272
return Base.UUID(uuid_str[5:end])
7373
end
7474

7575
function serial(dev::Device)
7676
buf = Vector{Cchar}(undef, NVML_DEVICE_SERIAL_BUFFER_SIZE)
7777
nvmlDeviceGetSerial(dev, pointer(buf), length(buf))
78-
return unsafe_string(pointer(buf))
78+
return GC.@preserve buf unsafe_string(pointer(buf))
7979
end
8080

8181
function index(dev::Device)

lib/nvml/system.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ function version()
44

55
# the version string is too long for Julia to handle, e.g. 11.450.36.06,
66
# so split off the driver part into the build suffix
7-
ver = unsafe_string(pointer(buf))
7+
ver = GC.@preserve buf unsafe_string(pointer(buf))
88
parts = parse.(Int, split(ver, '.'))
99
return VersionNumber(parts[1], 0, 0, (), Tuple(parts[2:end]))
1010
end
1111

1212
function driver_version()
1313
buf = Vector{Cchar}(undef, NVML_SYSTEM_DRIVER_VERSION_BUFFER_SIZE)
1414
nvmlSystemGetDriverVersion(pointer(buf), length(buf))
15-
return VersionNumber(unsafe_string(pointer(buf)))
15+
return GC.@preserve buf VersionNumber(unsafe_string(pointer(buf)))
1616
end
1717

1818
function cuda_driver_version()

0 commit comments

Comments
 (0)