aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dome_key_map.h2
-rw-r--r--includer.c2
-rw-r--r--src/cocoa_bridge.rs7
3 files changed, 6 insertions, 5 deletions
diff --git a/dome_key_map.h b/dome_key_map.h
index f3c3f68..c6bf4c1 100644
--- a/dome_key_map.h
+++ b/dome_key_map.h
@@ -27,4 +27,4 @@ typedef struct {
size_t length;
} Trigger;
-const CKeyActionResult *c_run_key_action(Trigger trigger);
+const CKeyActionResult *c_run_key_action(const Trigger *trigger);
diff --git a/includer.c b/includer.c
index 2c89064..fae44b3 100644
--- a/includer.c
+++ b/includer.c
@@ -9,7 +9,7 @@ int main() {
.buttons = buttons,
.length = SIZE
};
- const CKeyActionResult *result = c_run_key_action(trigger);
+ const CKeyActionResult *result = c_run_key_action(&trigger);
printf("%s", result->action);
return 0;
diff --git a/src/cocoa_bridge.rs b/src/cocoa_bridge.rs
index 9392fcb..4d63c44 100644
--- a/src/cocoa_bridge.rs
+++ b/src/cocoa_bridge.rs
@@ -61,12 +61,13 @@ pub struct CKeyActionResult {
#[no_mangle]
pub extern "C" fn c_run_key_action(
- trigger: Trigger,
+ trigger: *const Trigger,
) -> *const CKeyActionResult {
let trigger = unsafe {
- assert!(!trigger.buttons.is_null());
+ assert!(!trigger.is_null());
+ assert!(!(*trigger).buttons.is_null());
- slice::from_raw_parts(trigger.buttons, trigger.length as usize)
+ slice::from_raw_parts((*trigger).buttons, (*trigger).length as usize)
};
let result = match run_key_action_for_mode(trigger, None) {