Bug fix: Adjust size of GrayToBinary-Table
Wenn wir z.B. eine Tabelle mit 4 Variablen = 16 Elementen anlegen, und anschließend eine Datei mit mehr als 4 Variablen bearbeiten, müssen wir die Tabelle vergrößern
This commit is contained in:
		
							parent
							
								
									e61c4be44c
								
							
						
					
					
						commit
						d27c3eb1f7
					
				
					 2 changed files with 10 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -6,6 +6,7 @@ using namespace std;
 | 
			
		|||
extern uint numElements;
 | 
			
		||||
 | 
			
		||||
uint* Tools::GrayToBinaryTable = NULL;
 | 
			
		||||
uint Tools::GrayToBinaryTableSize = 0;
 | 
			
		||||
 | 
			
		||||
// convert the binary representation of x to a string with the specified length
 | 
			
		||||
char* Tools::BinaryToChars(uint x, char length)
 | 
			
		||||
| 
						 | 
				
			
			@ -26,14 +27,21 @@ char* Tools::BinaryToChars(uint x, char length)
 | 
			
		|||
 | 
			
		||||
uint Tools::GrayToBinary(uint x)
 | 
			
		||||
{
 | 
			
		||||
	if (Tools::GrayToBinaryTable == NULL)
 | 
			
		||||
	if (Tools::GrayToBinaryTableSize < numElements && Tools::GrayToBinaryTable != NULL)
 | 
			
		||||
	{
 | 
			
		||||
		delete[] Tools::GrayToBinaryTable;
 | 
			
		||||
		Tools::InitGrayToBinaryTable();
 | 
			
		||||
	}
 | 
			
		||||
	else if (Tools::GrayToBinaryTable == NULL)
 | 
			
		||||
		Tools::InitGrayToBinaryTable();
 | 
			
		||||
 | 
			
		||||
	return Tools::GrayToBinaryTable[x];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Tools::InitGrayToBinaryTable()
 | 
			
		||||
{
 | 
			
		||||
	Tools::GrayToBinaryTable = new uint[numElements];
 | 
			
		||||
	Tools::GrayToBinaryTableSize = numElements;
 | 
			
		||||
	for (uint i = 0; i < numElements; i++)
 | 
			
		||||
		Tools::GrayToBinaryTable[i] = Tools::CalcGrayToBinary(i);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,5 +9,6 @@ public:
 | 
			
		|||
private:
 | 
			
		||||
	static void InitGrayToBinaryTable();
 | 
			
		||||
	static uint* GrayToBinaryTable;
 | 
			
		||||
	static uint GrayToBinaryTableSize;
 | 
			
		||||
	static uint Tools::CalcGrayToBinary(uint x);
 | 
			
		||||
};
 | 
			
		||||
		Loading…
	
		Reference in a new issue