| 185 | #define LEVEL_BITS 8 |
| 186 | |
| 187 | VariableTable::VariableTable(VariableTable *parent, int size) |
| 188 | { |
| 189 | if (parent) { |
| 190 | level = parent->level + 1; |
| 191 | assert(level < (1 << LEVEL_BITS)); |
| 192 | this->parent = parent->getTable(); |
| 193 | } else { |
| 194 | level = 0; |
| 195 | this->parent = nullptr; |
| 196 | } |
| 197 | |
| 198 | count = 1; |
| 199 | this->size = size; |
| 200 | if (size == 0) { |
| 201 | variableTable = nullptr; |
| 202 | return; |
| 203 | } |
| 204 | variableTable = (CCallVariable **)malloc(size * sizeof(CCallVariable *)); |
| 205 | if (!variableTable) { |
| 206 | ERROR("Could not allocate variable table!"); |
| 207 | } |
| 208 | for (int i = 0; i < size; i++) { |
| 209 | variableTable[i] = new CCallVariable(); |
| 210 | } |
| 211 | } |
| 212 | |
| 213 | VariableTable::VariableTable(AllocVariableTable *src) |
| 214 | { |