final void markOid(int oid) {
		if (oid != 0) {
			long pos = getGCPos(oid);

			if ((pos & (dbFreeHandleFlag | dbPageObjectFlag)) != 0) {
				throw new StorageError(StorageError.INVALID_OID);
			}

			if (pos < header.root[currIndex].size) {
				// object was not allocated by custom allocator
				int bit = (int) (pos >>> dbAllocationQuantumBits);

				if ((blackBitmap[bit >>> 5] & (1 << (bit & 31))) == 0) {
					greyBitmap[bit >>> 5] |= 1 << (bit & 31);
				}
			}
		}
	}