本文整理汇总了C++中object_allocator::remove方法的典型用法代码示例。如果您正苦于以下问题:C++ object_allocator::remove方法的具体用法?C++ object_allocator::remove怎么用?C++ object_allocator::remove使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类object_allocator
的用法示例。
在下文中一共展示了object_allocator::remove方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
void
et_free_tree_force (struct et_node *t)
{
et_occurrences.remove (t->rightmost_occ);
if (t->parent_occ)
et_occurrences.remove (t->parent_occ);
et_nodes.remove (t);
}
示例2: while
void
et_free_tree (struct et_node *t)
{
while (t->son)
et_split (t->son);
if (t->father)
et_split (t);
et_occurrences.remove (t->rightmost_occ);
et_nodes.remove (t);
}
示例3: while
/* Free live range list LR. */
static void
free_live_range_list (lra_live_range_t lr)
{
lra_live_range_t next;
while (lr != NULL)
{
next = lr->next;
lra_live_range_pool.remove (lr);
lr = next;
}
}
示例4:
/* Merge *non-intersected* ranges R1 and R2 and returns the result.
The function maintains the order of ranges and tries to minimize
size of the result range list. Ranges R1 and R2 may not be used
after the call. */
lra_live_range_t
lra_merge_live_ranges (lra_live_range_t r1, lra_live_range_t r2)
{
lra_live_range_t first, last;
if (r1 == NULL)
return r2;
if (r2 == NULL)
return r1;
for (first = last = NULL; r1 != NULL && r2 != NULL;)
{
if (r1->start < r2->start)
std::swap (r1, r2);
if (r1->start == r2->finish + 1)
{
/* Joint ranges: merge r1 and r2 into r1. */
r1->start = r2->start;
lra_live_range_t temp = r2;
r2 = r2->next;
lra_live_range_pool.remove (temp);
}
else
{
gcc_assert (r2->finish + 1 < r1->start);
/* Add r1 to the result. */
if (first == NULL)
first = last = r1;
else
{
last->next = r1;
last = r1;
}
r1 = r1->next;
}
}
if (r1 != NULL)
{
if (first == NULL)
first = r1;
else
last->next = r1;
}
else
{
lra_assert (r2 != NULL);
if (first == NULL)
first = r2;
else
last->next = r2;
}
return first;
}
示例5:
static void
free_debug_insn_changes (struct value_data *vd, unsigned int regno)
{
struct queued_debug_insn_change *cur, *next;
for (cur = vd->e[regno].debug_insn_changes; cur; cur = next)
{
next = cur->next;
--vd->n_debug_insn_changes;
queued_debug_insn_change_pool.remove (cur);
}
vd->e[regno].debug_insn_changes = NULL;
}