void point_free(struct point *p)
{
int i;
- for (i = 0; i < p->size; i++)
+ for (i = 0; i < p->links->size; i++)
tlist_del_init(&p->links->lists[i]);
mark_delete(&p->m);
free(p->links);
int i;
struct point *ret = malloc(sizeof(*ret));
struct point_links *lnk = malloc(sizeof(*lnk) +
- p->size * sizeof(lnk->lists[0]));
+ p->links->size * sizeof(lnk->lists[0]));
dup_mark(&p->m, &ret->m);
ret->m.viewnum = MARK_POINT;
- ret->size = p->size;
ret->links = lnk;
+ lnk->size = p->links->size;
lnk->pt = ret;
tlist_add(&ret->m.view, GRP_MARK, &p->m.view);
- for (i = 0; i < ret->size; i++)
+ for (i = 0; i < lnk->size; i++)
if (tlist_empty(&p->links->lists[i]))
INIT_TLIST_HEAD(&lnk->lists[i], GRP_LIST);
else
struct point_links *new = malloc(sizeof(*new) +
d->nviews * sizeof(new->lists[0]));
new->pt = p;
+ new->size = d->nviews;
p->links = new;
- for (i = 0; i < p->size; i++) {
+ for (i = 0; i < old->size; i++) {
tlist_add(&new->lists[i], GRP_LIST, &old->lists[i]);
tlist_del(&old->lists[i]);
}
- p->size = d->nviews;
- for (; i < p->size; i++)
+ for (; i < new->size; i++)
INIT_TLIST_HEAD(&new->lists[i], GRP_HEAD);
free(old);
}
tlist_add(&m->view, GRP_MARK, &d->points);
p = container_of(m, struct point, m);
lnk = p->links;
- for (i = 0; i < p->size; i++)
+ for (i = 0; i < lnk->size; i++)
if (d->views[i].notify) {
if (!new)
tlist_del(&lnk->lists[i]);
ret->m.attrs = NULL;
ret->m.viewnum = MARK_POINT;
- ret->size = d->nviews;
ret->links = lnk;
+ lnk->size = d->nviews;
lnk->pt = ret;
__mark_reset(d, &ret->m, 1, 0);
return ret;
}
/* Now move 'p' in the various mark lists */
- for (i = 0; i < p->size; i++) {
+ for (i = 0; i < p->links->size; i++) {
struct mark *mnear = NULL;
struct tlist_head *tl;
}
/* Now move 'p' in the various mark lists */
- for (i = 0; i < p->size; i++) {
+ for (i = 0; i < p->links->size; i++) {
struct mark *mnear = NULL;
struct tlist_head *tl;
ci.x = ci.y = -1;
if (!m)
m = &p->m;
- for (i = 0; i < p->size; i++) {
+ for (i = 0; i < p->links->size; i++) {
struct tlist_head *tl = &p->links->lists[i];
struct command *c = d->views[i].notify;
if (m->viewnum == MARK_POINT) {
/* This is a point so we can notify all remaining easily. */
struct point *p = container_of(m, struct point, m);
- for (i = 0; i < p->size; i++) {
+ for (i = 0; i < p->links->size; i++) {
struct tlist_head *tl = &p->links->lists[i];
struct command *c = d->views[i].notify;
if (done[i])