aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--moder.c3
-rw-r--r--src/cocoa_bridge.rs13
2 files changed, 10 insertions, 6 deletions
diff --git a/moder.c b/moder.c
index c50a7d5..1dd4e52 100644
--- a/moder.c
+++ b/moder.c
@@ -10,7 +10,7 @@ int main() {
.length = SIZE
};
const CKeyActionResult *mode = c_run_key_action(mode_trigger, NULL);
- /* printf("%d\n", *mode->kind); */
+ printf("%d\n", *mode->kind);
HeadphoneButton buttons[] = {HeadphoneButton_Down};
Trigger trigger = {
@@ -21,6 +21,7 @@ int main() {
printf("%d\n", *result->kind);
printf("%s", result->action);
+ /* printf("\n%d\n", *mode->kind); */
return 0;
}
diff --git a/src/cocoa_bridge.rs b/src/cocoa_bridge.rs
index 8581b46..e860d24 100644
--- a/src/cocoa_bridge.rs
+++ b/src/cocoa_bridge.rs
@@ -107,7 +107,7 @@ pub extern "C" fn c_run_key_action(
if mode.is_null() {
None
} else {
- println!("{:?}", *mode);
+ println!("In mode(110): {:?}", *mode);
assert!(!(*mode).buttons.is_null());
Some(
@@ -115,7 +115,7 @@ pub extern "C" fn c_run_key_action(
)
}
};
- println!("{:?}", mode);
+ println!("Mode after unsafe (118): {:?}", mode);
let result = run_key_action_for_mode(trigger, mode);
let result = match result {
@@ -138,12 +138,13 @@ pub extern "C" fn c_run_key_action(
// );
let trigger;
let in_mode = if let Some(m) = k.in_mode {
- trigger = Trigger {
+ let boink = Trigger {
buttons: m.as_ptr(),
length: m.len(),
};
- &trigger
+ trigger = Box::into_raw(Box::new(boink)); // TODO: memory leak
+ trigger
} else {
ptr::null()
};
@@ -158,7 +159,7 @@ pub extern "C" fn c_run_key_action(
kind: &k.kind,
in_mode: in_mode,
};
- println!("{:?}", result);
+ println!("CKeyActionResult(161): {:?}", result);
// mem::forget(result);
result
},
@@ -172,8 +173,10 @@ pub extern "C" fn c_run_key_action(
};
// println!("hey result: {:?}", result);
// mem::forget(result);
+ println!("Result 177: {:?}", result);
let r = Box::new(result);
let r2 = Box::into_raw(r);
+ println!("r2: {:?}", r2);
// &result as *const CKeyActionResult
r2 as *const CKeyActionResult