Skip to content

Commit 595ae7c

Browse files
committed
[wgpu-hal] add null terminations to symbols to avoid reallocation
1 parent 9d24888 commit 595ae7c

File tree

3 files changed

+14
-14
lines changed

3 files changed

+14
-14
lines changed

wgpu-hal/src/auxil/dxgi/time.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ impl PresentationTimer {
6262
let kernelbase =
6363
libloading::os::windows::Library::open_already_loaded("kernelbase.dll").unwrap();
6464
// No concerns about lifetimes here as kernelbase is always there.
65-
let ptr = unsafe { kernelbase.get(b"QueryInterruptTimePrecise").unwrap() };
65+
let ptr = unsafe { kernelbase.get(b"QueryInterruptTimePrecise\0").unwrap() };
6666
Self::IPresentationManager {
6767
fnQueryInterruptTimePrecise: *ptr,
6868
}

wgpu-hal/src/dx12/mod.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ impl D3D12Lib {
116116
riid: *const windows_core::GUID,
117117
ppdevice: *mut *mut core::ffi::c_void,
118118
) -> windows_core::HRESULT;
119-
let func: libloading::Symbol<Fun> = unsafe { self.lib.get(b"D3D12CreateDevice") }?;
119+
let func: libloading::Symbol<Fun> = unsafe { self.lib.get(b"D3D12CreateDevice\0") }?;
120120

121121
let mut result__ = None;
122122

@@ -148,7 +148,7 @@ impl D3D12Lib {
148148
pperrorblob: *mut *mut core::ffi::c_void,
149149
) -> windows_core::HRESULT;
150150
let func: libloading::Symbol<Fun> =
151-
unsafe { self.lib.get(b"D3D12SerializeRootSignature") }?;
151+
unsafe { self.lib.get(b"D3D12SerializeRootSignature\0") }?;
152152

153153
let desc = Direct3D12::D3D12_ROOT_SIGNATURE_DESC {
154154
NumParameters: parameters.len() as _,
@@ -187,7 +187,7 @@ impl D3D12Lib {
187187
riid: *const windows_core::GUID,
188188
ppvdebug: *mut *mut core::ffi::c_void,
189189
) -> windows_core::HRESULT;
190-
let func: libloading::Symbol<Fun> = unsafe { self.lib.get(b"D3D12GetDebugInterface") }?;
190+
let func: libloading::Symbol<Fun> = unsafe { self.lib.get(b"D3D12GetDebugInterface\0") }?;
191191

192192
let mut result__ = None;
193193

@@ -217,7 +217,7 @@ impl DxgiLib {
217217
riid: *const windows_core::GUID,
218218
pdebug: *mut *mut core::ffi::c_void,
219219
) -> windows_core::HRESULT;
220-
let func: libloading::Symbol<Fun> = unsafe { self.lib.get(b"DXGIGetDebugInterface1") }?;
220+
let func: libloading::Symbol<Fun> = unsafe { self.lib.get(b"DXGIGetDebugInterface1\0") }?;
221221

222222
let mut result__ = None;
223223

@@ -239,7 +239,7 @@ impl DxgiLib {
239239
riid: *const windows_core::GUID,
240240
ppfactory: *mut *mut core::ffi::c_void,
241241
) -> windows_core::HRESULT;
242-
let func: libloading::Symbol<Fun> = unsafe { self.lib.get(b"CreateDXGIFactory2") }?;
242+
let func: libloading::Symbol<Fun> = unsafe { self.lib.get(b"CreateDXGIFactory2\0") }?;
243243

244244
let mut result__ = None;
245245

@@ -261,7 +261,7 @@ impl DxgiLib {
261261
riid: *const windows_core::GUID,
262262
ppfactory: *mut *mut core::ffi::c_void,
263263
) -> windows_core::HRESULT;
264-
let func: libloading::Symbol<Fun> = unsafe { self.lib.get(b"CreateDXGIFactory1") }?;
264+
let func: libloading::Symbol<Fun> = unsafe { self.lib.get(b"CreateDXGIFactory1\0") }?;
265265

266266
let mut result__ = None;
267267

wgpu-hal/src/gles/egl.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ impl Drop for DisplayOwner {
143143
match self.display {
144144
DisplayRef::X11(ptr) => unsafe {
145145
let func: libloading::Symbol<XCloseDisplayFun> =
146-
self.library.get(b"XCloseDisplay").unwrap();
146+
self.library.get(b"XCloseDisplay\0").unwrap();
147147
func(ptr.as_ptr());
148148
},
149149
DisplayRef::Wayland => {}
@@ -155,7 +155,7 @@ fn open_x_display() -> Option<DisplayOwner> {
155155
log::debug!("Loading X11 library to get the current display");
156156
unsafe {
157157
let library = find_library(&["libX11.so.6", "libX11.so"])?;
158-
let func: libloading::Symbol<XOpenDisplayFun> = library.get(b"XOpenDisplay").unwrap();
158+
let func: libloading::Symbol<XOpenDisplayFun> = library.get(b"XOpenDisplay\0").unwrap();
159159
let result = func(ptr::null());
160160
ptr::NonNull::new(result).map(|ptr| DisplayOwner {
161161
display: DisplayRef::X11(ptr),
@@ -182,9 +182,9 @@ fn test_wayland_display() -> Option<DisplayOwner> {
182182
let library = unsafe {
183183
let client_library = find_library(&["libwayland-client.so.0", "libwayland-client.so"])?;
184184
let wl_display_connect: libloading::Symbol<WlDisplayConnectFun> =
185-
client_library.get(b"wl_display_connect").unwrap();
185+
client_library.get(b"wl_display_connect\0").unwrap();
186186
let wl_display_disconnect: libloading::Symbol<WlDisplayDisconnectFun> =
187-
client_library.get(b"wl_display_disconnect").unwrap();
187+
client_library.get(b"wl_display_disconnect\0").unwrap();
188188
let display = ptr::NonNull::new(wl_display_connect(ptr::null()))?;
189189
wl_display_disconnect(display.as_ptr());
190190
find_library(&["libwayland-egl.so.1", "libwayland-egl.so"])?
@@ -1294,7 +1294,7 @@ impl crate::Surface for Surface {
12941294
(WindowKind::Wayland, Rwh::Wayland(handle)) => {
12951295
let library = &self.wsi.display_owner.as_ref().unwrap().library;
12961296
let wl_egl_window_create: libloading::Symbol<WlEglWindowCreateFun> =
1297-
unsafe { library.get(b"wl_egl_window_create") }.unwrap();
1297+
unsafe { library.get(b"wl_egl_window_create\0") }.unwrap();
12981298
let window =
12991299
unsafe { wl_egl_window_create(handle.surface.as_ptr(), 640, 480) }
13001300
.cast();
@@ -1403,7 +1403,7 @@ impl crate::Surface for Surface {
14031403
if let Some(window) = wl_window {
14041404
let library = &self.wsi.display_owner.as_ref().unwrap().library;
14051405
let wl_egl_window_resize: libloading::Symbol<WlEglWindowResizeFun> =
1406-
unsafe { library.get(b"wl_egl_window_resize") }.unwrap();
1406+
unsafe { library.get(b"wl_egl_window_resize\0") }.unwrap();
14071407
unsafe {
14081408
wl_egl_window_resize(
14091409
window,
@@ -1475,7 +1475,7 @@ impl crate::Surface for Surface {
14751475
.expect("unsupported window")
14761476
.library;
14771477
let wl_egl_window_destroy: libloading::Symbol<WlEglWindowDestroyFun> =
1478-
unsafe { library.get(b"wl_egl_window_destroy") }.unwrap();
1478+
unsafe { library.get(b"wl_egl_window_destroy\0") }.unwrap();
14791479
unsafe { wl_egl_window_destroy(window) };
14801480
}
14811481
}

0 commit comments

Comments
 (0)