CcObject_t * CcArrayList_New(CcArrayList_t * self, CcObject_t * object) { int newCapacity; if (self->Count >= self->Capacity) { newCapacity = self->Capacity + self->Capacity; self->Objects = CcRealloc(self->Objects, sizeof(CcObject_t *) * newCapacity); self->Capacity = newCapacity; } object->index = self->Count; self->Objects[self->Count++] = object; return object; }
int CcSyntaxSymSet_New(CcSyntaxSymSet_t * self, const CcBitArray_t * s) { CcBitArray_t * cur; for (cur = self->start; cur < self->used; ++cur) if (CcBitArray_Equal(cur, s)) return cur - self->start; if (self->used >= self->last) { cur = CcRealloc(self->start, sizeof(CcBitArray_t) * (self->last - self->start) * 2); self->used = cur + (self->used - self->start); self->last = cur + (self->last - self->start) * 2; self->start = cur; } cur = self->used++; CcBitArray_Clone(cur, s); return cur - self->start; }