forceinline void IntSetRanges::init(const IntSet& s) { int n = s.ranges(); if (n > 0) { i = &static_cast<IntSet::IntSetObject*>(s.object())->r[0]; e = i+n; } else { i = e = NULL; } }
/// Initialize \a s with iterator \a i static void init(IntSet& s, I& i) { Support::DynamicArray<IntSet::Range,Heap> d(heap); int n=0; unsigned int size = 0; while (i()) { d[n].min = i.min(); d[n].max = i.max(); size += i.width(); ++n; ++i; } if (n > 0) { IntSet::IntSetObject* o = IntSet::IntSetObject::allocate(n); for (int j=n; j--; ) o->r[j]=d[j]; o->size = size; s.object(o); } }
static void init(IntSet& s, const IntSet& i) { s.object(i.object()); }