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;
|
extern uint numElements;
|
||||||
|
|
||||||
uint* Tools::GrayToBinaryTable = NULL;
|
uint* Tools::GrayToBinaryTable = NULL;
|
||||||
|
uint Tools::GrayToBinaryTableSize = 0;
|
||||||
|
|
||||||
// convert the binary representation of x to a string with the specified length
|
// convert the binary representation of x to a string with the specified length
|
||||||
char* Tools::BinaryToChars(uint x, char length)
|
char* Tools::BinaryToChars(uint x, char length)
|
||||||
|
@ -26,14 +27,21 @@ char* Tools::BinaryToChars(uint x, char length)
|
||||||
|
|
||||||
uint Tools::GrayToBinary(uint x)
|
uint Tools::GrayToBinary(uint x)
|
||||||
{
|
{
|
||||||
if (Tools::GrayToBinaryTable == NULL)
|
if (Tools::GrayToBinaryTableSize < numElements && Tools::GrayToBinaryTable != NULL)
|
||||||
|
{
|
||||||
|
delete[] Tools::GrayToBinaryTable;
|
||||||
Tools::InitGrayToBinaryTable();
|
Tools::InitGrayToBinaryTable();
|
||||||
|
}
|
||||||
|
else if (Tools::GrayToBinaryTable == NULL)
|
||||||
|
Tools::InitGrayToBinaryTable();
|
||||||
|
|
||||||
return Tools::GrayToBinaryTable[x];
|
return Tools::GrayToBinaryTable[x];
|
||||||
}
|
}
|
||||||
|
|
||||||
void Tools::InitGrayToBinaryTable()
|
void Tools::InitGrayToBinaryTable()
|
||||||
{
|
{
|
||||||
Tools::GrayToBinaryTable = new uint[numElements];
|
Tools::GrayToBinaryTable = new uint[numElements];
|
||||||
|
Tools::GrayToBinaryTableSize = numElements;
|
||||||
for (uint i = 0; i < numElements; i++)
|
for (uint i = 0; i < numElements; i++)
|
||||||
Tools::GrayToBinaryTable[i] = Tools::CalcGrayToBinary(i);
|
Tools::GrayToBinaryTable[i] = Tools::CalcGrayToBinary(i);
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,5 +9,6 @@ public:
|
||||||
private:
|
private:
|
||||||
static void InitGrayToBinaryTable();
|
static void InitGrayToBinaryTable();
|
||||||
static uint* GrayToBinaryTable;
|
static uint* GrayToBinaryTable;
|
||||||
|
static uint GrayToBinaryTableSize;
|
||||||
static uint Tools::CalcGrayToBinary(uint x);
|
static uint Tools::CalcGrayToBinary(uint x);
|
||||||
};
|
};
|
Loading…
Reference in a new issue