Use C-ABI for JNI functions (#31808)

`#[no_mangle]` alone does not imply "C"-ABI,
however the JNI layer will use the C-ABI to call the function.
See also the relevant [clippy-lint](https://rust-lang.github.io/rust-clippy/master/index.html#/no_mangle)
This commit is contained in:
Jonathan Schwender 2024-03-21 14:12:31 +01:00 committed by GitHub
parent da696b7e57
commit f5c4988dcb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -33,7 +33,7 @@ extern "C" {
} }
#[no_mangle] #[no_mangle]
pub fn android_main() { pub extern "C" fn android_main() {
// FIXME(mukilan): this android_main is only present to stop // FIXME(mukilan): this android_main is only present to stop
// the java side 'System.loadLibrary('simpleservo') call from // the java side 'System.loadLibrary('simpleservo') call from
// failing due to undefined reference to android_main introduced // failing due to undefined reference to android_main introduced
@ -56,13 +56,16 @@ where
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_version(env: JNIEnv, _class: JClass) -> jstring { pub extern "C" fn Java_org_mozilla_servoview_JNIServo_version(
env: JNIEnv,
_class: JClass,
) -> jstring {
let v = simpleservo::servo_version(); let v = simpleservo::servo_version();
new_string(&env, &v).unwrap_or_else(|null| null) new_string(&env, &v).unwrap_or_else(|null| null)
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_init( pub extern "C" fn Java_org_mozilla_servoview_JNIServo_init(
env: JNIEnv, env: JNIEnv,
_: JClass, _: JClass,
_activity: JObject, _activity: JObject,
@ -135,25 +138,33 @@ pub fn Java_org_mozilla_servoview_JNIServo_init(
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_setBatchMode(env: JNIEnv, _: JClass, batch: jboolean) { pub extern "C" fn Java_org_mozilla_servoview_JNIServo_setBatchMode(
env: JNIEnv,
_: JClass,
batch: jboolean,
) {
debug!("setBatchMode"); debug!("setBatchMode");
call(&env, |s| s.set_batch_mode(batch == JNI_TRUE)); call(&env, |s| s.set_batch_mode(batch == JNI_TRUE));
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_requestShutdown(env: JNIEnv, _class: JClass) { pub extern "C" fn Java_org_mozilla_servoview_JNIServo_requestShutdown(env: JNIEnv, _class: JClass) {
debug!("requestShutdown"); debug!("requestShutdown");
call(&env, |s| s.request_shutdown()); call(&env, |s| s.request_shutdown());
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_deinit(_env: JNIEnv, _class: JClass) { pub extern "C" fn Java_org_mozilla_servoview_JNIServo_deinit(_env: JNIEnv, _class: JClass) {
debug!("deinit"); debug!("deinit");
simpleservo::deinit(); simpleservo::deinit();
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_resize(env: JNIEnv, _: JClass, coordinates: JObject) { pub extern "C" fn Java_org_mozilla_servoview_JNIServo_resize(
env: JNIEnv,
_: JClass,
coordinates: JObject,
) {
let coords = jni_coords_to_rust_coords(&env, coordinates); let coords = jni_coords_to_rust_coords(&env, coordinates);
debug!("resize {:#?}", coords); debug!("resize {:#?}", coords);
match coords { match coords {
@ -163,13 +174,17 @@ pub fn Java_org_mozilla_servoview_JNIServo_resize(env: JNIEnv, _: JClass, coordi
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_performUpdates(env: JNIEnv, _class: JClass) { pub extern "C" fn Java_org_mozilla_servoview_JNIServo_performUpdates(env: JNIEnv, _class: JClass) {
debug!("performUpdates"); debug!("performUpdates");
call(&env, |s| s.perform_updates()); call(&env, |s| s.perform_updates());
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_loadUri(env: JNIEnv, _class: JClass, url: JString) { pub extern "C" fn Java_org_mozilla_servoview_JNIServo_loadUri(
env: JNIEnv,
_class: JClass,
url: JString,
) {
debug!("loadUri"); debug!("loadUri");
match env.get_string(url) { match env.get_string(url) {
Ok(url) => { Ok(url) => {
@ -183,37 +198,37 @@ pub fn Java_org_mozilla_servoview_JNIServo_loadUri(env: JNIEnv, _class: JClass,
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_reload(env: JNIEnv, _class: JClass) { pub extern "C" fn Java_org_mozilla_servoview_JNIServo_reload(env: JNIEnv, _class: JClass) {
debug!("reload"); debug!("reload");
call(&env, |s| s.reload()); call(&env, |s| s.reload());
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_stop(env: JNIEnv, _class: JClass) { pub extern "C" fn Java_org_mozilla_servoview_JNIServo_stop(env: JNIEnv, _class: JClass) {
debug!("stop"); debug!("stop");
call(&env, |s| s.stop()); call(&env, |s| s.stop());
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_refresh(env: JNIEnv, _class: JClass) { pub extern "C" fn Java_org_mozilla_servoview_JNIServo_refresh(env: JNIEnv, _class: JClass) {
debug!("refresh"); debug!("refresh");
call(&env, |s| s.refresh()); call(&env, |s| s.refresh());
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_goBack(env: JNIEnv, _class: JClass) { pub extern "C" fn Java_org_mozilla_servoview_JNIServo_goBack(env: JNIEnv, _class: JClass) {
debug!("goBack"); debug!("goBack");
call(&env, |s| s.go_back()); call(&env, |s| s.go_back());
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_goForward(env: JNIEnv, _class: JClass) { pub extern "C" fn Java_org_mozilla_servoview_JNIServo_goForward(env: JNIEnv, _class: JClass) {
debug!("goForward"); debug!("goForward");
call(&env, |s| s.go_forward()); call(&env, |s| s.go_forward());
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_scrollStart( pub extern "C" fn Java_org_mozilla_servoview_JNIServo_scrollStart(
env: JNIEnv, env: JNIEnv,
_: JClass, _: JClass,
dx: jint, dx: jint,
@ -228,7 +243,7 @@ pub fn Java_org_mozilla_servoview_JNIServo_scrollStart(
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_scrollEnd( pub extern "C" fn Java_org_mozilla_servoview_JNIServo_scrollEnd(
env: JNIEnv, env: JNIEnv,
_: JClass, _: JClass,
dx: jint, dx: jint,
@ -243,7 +258,7 @@ pub fn Java_org_mozilla_servoview_JNIServo_scrollEnd(
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_scroll( pub extern "C" fn Java_org_mozilla_servoview_JNIServo_scroll(
env: JNIEnv, env: JNIEnv,
_: JClass, _: JClass,
dx: jint, dx: jint,
@ -256,7 +271,7 @@ pub fn Java_org_mozilla_servoview_JNIServo_scroll(
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_touchDown( pub extern "C" fn Java_org_mozilla_servoview_JNIServo_touchDown(
env: JNIEnv, env: JNIEnv,
_: JClass, _: JClass,
x: jfloat, x: jfloat,
@ -268,7 +283,7 @@ pub fn Java_org_mozilla_servoview_JNIServo_touchDown(
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_touchUp( pub extern "C" fn Java_org_mozilla_servoview_JNIServo_touchUp(
env: JNIEnv, env: JNIEnv,
_: JClass, _: JClass,
x: jfloat, x: jfloat,
@ -280,7 +295,7 @@ pub fn Java_org_mozilla_servoview_JNIServo_touchUp(
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_touchMove( pub extern "C" fn Java_org_mozilla_servoview_JNIServo_touchMove(
env: JNIEnv, env: JNIEnv,
_: JClass, _: JClass,
x: jfloat, x: jfloat,
@ -292,7 +307,7 @@ pub fn Java_org_mozilla_servoview_JNIServo_touchMove(
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_touchCancel( pub extern "C" fn Java_org_mozilla_servoview_JNIServo_touchCancel(
env: JNIEnv, env: JNIEnv,
_: JClass, _: JClass,
x: jfloat, x: jfloat,
@ -304,7 +319,7 @@ pub fn Java_org_mozilla_servoview_JNIServo_touchCancel(
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_pinchZoomStart( pub extern "C" fn Java_org_mozilla_servoview_JNIServo_pinchZoomStart(
env: JNIEnv, env: JNIEnv,
_: JClass, _: JClass,
factor: jfloat, factor: jfloat,
@ -318,7 +333,7 @@ pub fn Java_org_mozilla_servoview_JNIServo_pinchZoomStart(
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_pinchZoom( pub extern "C" fn Java_org_mozilla_servoview_JNIServo_pinchZoom(
env: JNIEnv, env: JNIEnv,
_: JClass, _: JClass,
factor: jfloat, factor: jfloat,
@ -330,7 +345,7 @@ pub fn Java_org_mozilla_servoview_JNIServo_pinchZoom(
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_pinchZoomEnd( pub extern "C" fn Java_org_mozilla_servoview_JNIServo_pinchZoomEnd(
env: JNIEnv, env: JNIEnv,
_: JClass, _: JClass,
factor: jfloat, factor: jfloat,
@ -342,19 +357,24 @@ pub fn Java_org_mozilla_servoview_JNIServo_pinchZoomEnd(
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_click(env: JNIEnv, _: JClass, x: jfloat, y: jfloat) { pub extern "C" fn Java_org_mozilla_servoview_JNIServo_click(
env: JNIEnv,
_: JClass,
x: jfloat,
y: jfloat,
) {
debug!("click"); debug!("click");
call(&env, |s| s.click(x as f32, y as f32)); call(&env, |s| s.click(x as f32, y as f32));
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_pauseCompositor(env: JNIEnv, _: JClass) { pub extern "C" fn Java_org_mozilla_servoview_JNIServo_pauseCompositor(env: JNIEnv, _: JClass) {
debug!("pauseCompositor"); debug!("pauseCompositor");
call(&env, |s| s.pause_compositor()); call(&env, |s| s.pause_compositor());
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_resumeCompositor( pub extern "C" fn Java_org_mozilla_servoview_JNIServo_resumeCompositor(
env: JNIEnv, env: JNIEnv,
_: JClass, _: JClass,
surface: JObject, surface: JObject,
@ -370,7 +390,7 @@ pub fn Java_org_mozilla_servoview_JNIServo_resumeCompositor(
} }
#[no_mangle] #[no_mangle]
pub fn Java_org_mozilla_servoview_JNIServo_mediaSessionAction( pub extern "C" fn Java_org_mozilla_servoview_JNIServo_mediaSessionAction(
env: JNIEnv, env: JNIEnv,
_: JClass, _: JClass,
action: jint, action: jint,