| 172 | return (char*)best->page + (fromBase & ~(elemSize - 1)) + sizeof(markerType); |
| 173 | } |
| 174 | void Mark(unsigned int number) |
| 175 | { |
| 176 | assert(number <= 1); |
| 177 | MyLargeBlock *curr = activePages; |
| 178 | while(curr) |
| 179 | { |
| 180 | for(unsigned int i = 0; i < (curr == activePages ? lastNum : countInBlock); i++) |
| 181 | { |
| 182 | curr->page[i].marker = (curr->page[i].marker & ~NULLC::OBJECT_VISIBLE) | number; |
| 183 | } |
| 184 | curr = curr->next; |
| 185 | } |
| 186 | } |
| 187 | unsigned int FreeMarked() |
| 188 | { |
| 189 | unsigned int freed = 0; |