1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
commit 7871e211ec43
Author: sotaro <sotaro.ikeda.g@gmail.com>
Date: Fri Mar 16 21:03:59 2018 +0900
Bug 1444798 - Fix ExternalImageCallback func types r=jrmuizel
---
gfx/webrender_bindings/src/bindings.rs | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git gfx/webrender_bindings/src/bindings.rs gfx/webrender_bindings/src/bindings.rs
index 8517d7dd33e5..cf885ee713f3 100644
--- gfx/webrender_bindings/src/bindings.rs
+++ gfx/webrender_bindings/src/bindings.rs
@@ -312,8 +312,8 @@ struct WrExternalImage {
size: usize,
}
-type LockExternalImageCallback = fn(*mut c_void, WrExternalImageId, u8) -> WrExternalImage;
-type UnlockExternalImageCallback = fn(*mut c_void, WrExternalImageId, u8);
+type LockExternalImageCallback = unsafe extern "C" fn(*mut c_void, WrExternalImageId, u8) -> WrExternalImage;
+type UnlockExternalImageCallback = unsafe extern "C" fn(*mut c_void, WrExternalImageId, u8);
#[repr(C)]
pub struct WrExternalImageHandler {
@@ -327,7 +327,8 @@ impl ExternalImageHandler for WrExternalImageHandler {
id: ExternalImageId,
channel_index: u8)
-> ExternalImage {
- let image = (self.lock_func)(self.external_image_obj, id.into(), channel_index);
+
+ let image = unsafe { (self.lock_func)(self.external_image_obj, id.into(), channel_index) };
ExternalImage {
uv: TexelRect::new(image.u0, image.v0, image.u1, image.v1),
source: match image.image_type {
@@ -341,7 +342,9 @@ impl ExternalImageHandler for WrExternalImageHandler {
fn unlock(&mut self,
id: ExternalImageId,
channel_index: u8) {
- (self.unlock_func)(self.external_image_obj, id.into(), channel_index);
+ unsafe {
+ (self.unlock_func)(self.external_image_obj, id.into(), channel_index);
+ }
}
}
|