38 #pragma GCC visibility push(default)
41 template <
class BaseType,
class CoType>
44 Active<BaseType, CoType> *a,
50 redundantAge_(0,max-1, 0)
52 n_ = (max < a->number()) ? max : a->number();
54 for (
int i = 0; i < n_; i++)
55 active_[i] =
new PoolSlotRef<BaseType, CoType>(*(a->active_[i]));
59 template <
class BaseType,
class CoType>
60 Active<BaseType, CoType>::Active(
const Active<BaseType, CoType> &rhs)
65 redundantAge_(0, rhs.max()-1, 0)
67 for (
int i = 0; i < n_; i++) {
68 active_[i] =
new PoolSlotRef<BaseType, CoType>(*(rhs.active_[i]));
69 redundantAge_[i] = rhs.redundantAge_[i];
74 template <
class BaseType,
class CoType>
75 Active<BaseType, CoType>::~Active()
77 for (
int i = 0; i < n_; i++)
82 template <
class BaseType,
class CoType>
83 std::ostream &
operator<<(std::ostream &out,
const Active<BaseType, CoType> &rhs)
85 for (
int i = 0; i < rhs.n_; i++) {
87 BaseType *cv = rhs.active_[i]->conVar();
91 out <<
"void" << std::endl;
97 template <
class BaseType,
class CoType>
98 void Active<BaseType, CoType>::insert(PoolSlot<BaseType, CoType> *ps)
102 active_[n_] =
new PoolSlotRef<BaseType, CoType>(ps);
103 redundantAge_[n_] = 0;
108 template <
class BaseType,
class CoType>
109 void Active<BaseType, CoType>::insert(
110 ArrayBuffer<PoolSlot<BaseType, CoType> *> &ps)
112 const int nPs = ps.size();
114 for(
int i = 0; i < nPs; i++)
119 template <
class BaseType,
class CoType>
122 const int nDel = del.size();
124 for(
int i = 0; i < nDel; i++)
125 delete active_[del[i]];
126 active_.leftShift(del);
127 redundantAge_.leftShift(del);
132 template <
class BaseType,
class CoType>
133 void Active<BaseType, CoType>::realloc(
int newSize)
135 active_.resize(newSize);
136 redundantAge_.resize(newSize);
140 #pragma GCC visibility pop