Skip to content

Commit f39dcc5

Browse files
authored
refactor(frida): change handler trait to receive message by value (#219)
BREAKING CHANGE: the Handler trait is public and for user to impl, change signature of trait method is a BREAKING CHANGE. But the change (both for us and for user) is really sample, according to the discusion in #217, it is worth trying.
1 parent 6680b48 commit f39dcc5

4 files changed

Lines changed: 7 additions & 7 deletions

File tree

examples/core/console_log/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ fn main() {
4646
struct Handler;
4747

4848
impl ScriptHandler for Handler {
49-
fn on_message(&mut self, message: &frida::Message, _data: Option<Vec<u8>>) {
49+
fn on_message(&mut self, message: frida::Message, _data: Option<Vec<u8>>) {
5050
println!("{:?}", message);
5151
}
5252
}

examples/core/list_exports/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ fn main() {
7474
struct Handler;
7575

7676
impl frida::ScriptHandler for Handler {
77-
fn on_message(&mut self, message: &Message, _data: Option<Vec<u8>>) {
77+
fn on_message(&mut self, message: Message, _data: Option<Vec<u8>>) {
7878
println!("- {:?}", message);
7979
}
8080
}

examples/core/rpc_execute_function/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ fn main() {
111111
struct Handler;
112112

113113
impl frida::ScriptHandler for Handler {
114-
fn on_message(&mut self, message: &Message, _data: Option<Vec<u8>>) {
114+
fn on_message(&mut self, message: Message, _data: Option<Vec<u8>>) {
115115
println!("- {:?}", message);
116116
}
117117
}

frida/src/script.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ unsafe extern "C" fn call_on_message<I: ScriptHandler>(
121121

122122
// Retrieve extra message data, if any.
123123
if data.is_null() {
124-
handler.on_message(&formatted_msg, None);
124+
handler.on_message(formatted_msg, None);
125125
return;
126126
}
127127

@@ -140,7 +140,7 @@ unsafe extern "C" fn call_on_message<I: ScriptHandler>(
140140
.to_vec(),
141141
)
142142
};
143-
handler.on_message(&formatted_msg, data_vec);
143+
handler.on_message(formatted_msg, data_vec);
144144
}
145145
}
146146
}
@@ -153,7 +153,7 @@ fn on_message(cb_handler: &mut CallbackHandler, message: Message) {
153153
/// Represents a script signal handler.
154154
pub trait ScriptHandler {
155155
/// Handler called when a message is shared from JavaScript to Rust.
156-
fn on_message(&mut self, message: &Message, data: Option<Vec<u8>>);
156+
fn on_message(&mut self, message: Message, data: Option<Vec<u8>>);
157157
}
158158

159159
/// Represents a Frida script.
@@ -234,7 +234,7 @@ impl<'a> Script<'a> {
234234
/// struct Handler;
235235
///
236236
/// impl ScriptHandler for Handler {
237-
/// fn on_message(&mut self, message: &frida::Message, data: Option<Vec<u8>>) {
237+
/// fn on_message(&mut self, message: frida::Message, data: Option<Vec<u8>>) {
238238
/// println!("Message: {:?}", message);
239239
/// println!("Data: {:?}", data);
240240
/// }

0 commit comments

Comments
 (0)