changeset 410:8fa2619aa60e

Fix a handful of infinite loops that occur if you have more than 254 macros
author Kevin Frei <freik@fb.com>
date Sat, 02 Jan 2016 17:43:05 -0800
parents 3437e2246259
children 065959b4f7bd
files Macro/PartialMap/macro.c
diffstat 1 files changed, 6 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/Macro/PartialMap/macro.c	Tue Nov 10 11:24:03 2015 -0800
+++ b/Macro/PartialMap/macro.c	Sat Jan 02 17:43:05 2016 -0800
@@ -135,7 +135,7 @@
 // Key Trigger List Buffer and Layer Cache
 // The layer cache is set on press only, hold and release events refer to the value set on press
 TriggerGuide macroTriggerListBuffer[ MaxScanCode ];
-uint8_t macroTriggerListBufferSize = 0;
+var_uint_t macroTriggerListBufferSize = 0;
 var_uint_t macroTriggerListLayerCache[ MaxScanCode ];
 
 // Pending Trigger Macro Index List
@@ -557,7 +557,7 @@
 
 	// Add trigger to the Interconnect Cache
 	// During each processing loop, a scancode may be re-added depending on it's state
-	for ( uint8_t c = 0; c < macroInterconnectCacheSize; c++ )
+	for ( var_uint_t c = 0; c < macroInterconnectCacheSize; c++ )
 	{
 		// Check if the same ScanCode
 		if ( macroInterconnectCache[ c ].scanCode == trigger->scanCode )
@@ -699,7 +699,7 @@
 	uint8_t scanCode = ((TriggerGuide*)&triggerMacro->guide[ pos - TriggerGuideSize ])->scanCode;
 
 	// Lookup scanCode in buffer list for the current state and stateType
-	for ( uint8_t keyIndex = 0; keyIndex < macroTriggerListBufferSize; keyIndex++ )
+	for ( var_uint_t keyIndex = 0; keyIndex < macroTriggerListBufferSize; keyIndex++ )
 	{
 		if ( macroTriggerListBuffer[ keyIndex ].scanCode == scanCode )
 		{
@@ -905,7 +905,7 @@
 
 		TriggerMacroVote vote = TriggerMacroVote_Invalid;
 		// Iterate through the key buffer, comparing to each key in the combo
-		for ( uint8_t key = 0; key < macroTriggerListBufferSize; key++ )
+		for ( var_uint_t key = 0; key < macroTriggerListBufferSize; key++ )
 		{
 			// Lookup key information
 			TriggerGuide *keyInfo = &macroTriggerListBuffer[ key ];
@@ -1065,7 +1065,7 @@
 inline void Macro_updateTriggerMacroPendingList()
 {
 	// Iterate over the macroTriggerListBuffer to add any new Trigger Macros to the pending list
-	for ( uint8_t key = 0; key < macroTriggerListBufferSize; key++ )
+	for ( var_uint_t key = 0; key < macroTriggerListBufferSize; key++ )
 	{
 		// TODO LED States
 		// TODO Analog Switches
@@ -1586,7 +1586,7 @@
 	info_msg("Pending Key Events: ");
 	printInt16( (uint16_t)macroTriggerListBufferSize );
 	print(" : ");
-	for ( uint8_t key = 0; key < macroTriggerListBufferSize; key++ )
+	for ( var_uint_t key = 0; key < macroTriggerListBufferSize; key++ )
 	{
 		printHex( macroTriggerListBuffer[ key ].scanCode );
 		print(" ");