aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWojciech Siewierski <wojciech.siewierski@onet.pl>2016-08-18 01:34:05 +0200
committerWojciech Siewierski <wojciech.siewierski@onet.pl>2016-08-18 01:34:05 +0200
commit644c8c79271db8cf1bd934b9a80a0215585e46e7 (patch)
treecaa89a927ed4cac62228db381246bd96f3ae4939
parentcc7acfb416d446a123d10d2c33c3344f1f684f1b (diff)
downloadqmk_firmware-644c8c79271db8cf1bd934b9a80a0215585e46e7.tar.gz
qmk_firmware-644c8c79271db8cf1bd934b9a80a0215585e46e7.zip
Fix the process_record_nocache function
This function relies on checking the disable_action_cache static variable before accessing the layer cache.
-rw-r--r--quantum/quantum.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/quantum/quantum.c b/quantum/quantum.c
index a4c5c2ddb..cb1ba04ff 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -46,18 +46,20 @@ bool process_record_quantum(keyrecord_t *record) {
46 uint16_t keycode; 46 uint16_t keycode;
47 47
48 #if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS) 48 #if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS)
49 uint8_t layer; 49 /* TODO: Use store_or_get_action() or a similar function. */
50 if (!disable_action_cache) {
51 uint8_t layer;
50 52
51 if (record->event.pressed) { 53 if (record->event.pressed) {
52 layer = layer_switch_get_layer(key); 54 layer = layer_switch_get_layer(key);
53 update_source_layers_cache(key, layer); 55 update_source_layers_cache(key, layer);
54 } else { 56 } else {
55 layer = read_source_layers_cache(key); 57 layer = read_source_layers_cache(key);
56 } 58 }
57 keycode = keymap_key_to_keycode(layer, key); 59 keycode = keymap_key_to_keycode(layer, key);
58 #else 60 } else
59 keycode = keymap_key_to_keycode(layer_switch_get_layer(key), key);
60 #endif 61 #endif
62 keycode = keymap_key_to_keycode(layer_switch_get_layer(key), key);
61 63
62 // This is how you use actions here 64 // This is how you use actions here
63 // if (keycode == KC_LEAD) { 65 // if (keycode == KC_LEAD) {