Skip to content

Commit acf1ffb

Browse files
authored
Merge pull request #203 from devraymondsh/develop
Refactore ABI with bridge_api
2 parents 0c9310d + 7154680 commit acf1ffb

File tree

4 files changed

+18
-14
lines changed

4 files changed

+18
-14
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
use crate::{c_void, LoaderLifecycleState};
2+
3+
extern "C" {
4+
fn loader_impl_get(loader_impl: *mut c_void) -> *mut c_void;
5+
}
6+
7+
pub fn get_loader_lifecycle_state(loader_impl: *mut c_void) -> *mut LoaderLifecycleState {
8+
let loader_lifecycle_state =
9+
unsafe { loader_impl_get(loader_impl) } as *mut LoaderLifecycleState;
10+
11+
loader_lifecycle_state
12+
}

source/loaders/rs_loader/rust/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ pub use std::os::raw::c_char;
44
pub use std::os::raw::c_int;
55
pub use std::path::PathBuf;
66

7+
pub mod bridge_api;
8+
79
mod lifecycle;
810

911
pub use lifecycle::rs_loader_impl_clear;

source/loaders/rs_loader/rust/src/lifecycle/destroy.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
1-
use crate::{c_int, c_void, LoaderLifecycleState};
2-
3-
extern "C" {
4-
fn loader_impl_get(loader_impl: *mut c_void) -> *mut c_void;
5-
}
1+
use crate::{bridge_api, c_int, c_void};
62

73
#[no_mangle]
84
pub extern "C" fn rs_loader_impl_destroy(loader_impl: *mut c_void) -> c_int {
9-
let loader_lifecycle_state =
10-
unsafe { loader_impl_get(loader_impl) } as *mut LoaderLifecycleState;
5+
let loader_lifecycle_state = bridge_api::get_loader_lifecycle_state(loader_impl);
116

127
unsafe {
138
loader_lifecycle_state.drop_in_place();

source/loaders/rs_loader/rust/src/lifecycle/execution_path.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
1-
use crate::{c_char, c_int, c_void, CStr, LoaderLifecycleState, PathBuf};
2-
3-
extern "C" {
4-
fn loader_impl_get(loader_impl: *mut c_void) -> *mut c_void;
5-
}
1+
use crate::{bridge_api, c_char, c_int, c_void, CStr, PathBuf};
62

73
#[no_mangle]
84
pub extern "C" fn rs_loader_impl_execution_path(
95
loader_impl: *mut c_void,
106
path: *const c_char,
117
) -> c_int {
12-
let loader_lifecycle_state =
13-
unsafe { loader_impl_get(loader_impl) } as *mut LoaderLifecycleState;
8+
let loader_lifecycle_state = bridge_api::get_loader_lifecycle_state(loader_impl);
149

1510
let c_path: &CStr = unsafe { CStr::from_ptr(path) };
1611

0 commit comments

Comments
 (0)