- void *malloc(size_t inSize)
- {
- void *anAddress = mAllocator.malloc(inSize);
- mAllocSet.insert(anAddress);
- return anAddress;
- }
-
- void free(void *inAddress)
- {
- mAllocator.free(inAddress);
- mAllocSet.erase(inAddress);
- }
-
- void *realloc(void *inAddress, size_t inNewSize)
- {
- void *anAddress = mAllocator.realloc(inAddress, inNewSize);
- if (anAddress != inAddress)
- {
- mAllocSet.erase(inAddress);
- mAllocSet.insert(anAddress);
- }
-
- return anAddress;
- }
-
- void commit() { mAllocSet.clear(); }
-private:
- typedef std::set<void *> AllocSet;
-
- CssmAllocator &mAllocator;
- AllocSet mAllocSet;
+public:
+ Wrapper &operator [] (uint32 ix)
+ { assert(ix < count); return vector[ix]; }
+
+ void operator += (const Wrapper &add)
+ {
+ vector = reinterpret_cast<Wrapper *>(allocator.realloc(vector, (count + 1) * sizeof(Wrapper)));
+ //@@@???compiler bug??? vector = allocator.alloc<Wrapper>(vector, count + 1);
+ vector[count++] = add;
+ }