Hi, For me, code looks valid. Loop ends when one of the pointers is null:
> x && y So this comparison (x == y) verifies that both pointers are null, i.e. both lists are of the same size. On Mon, Mar 11, 2019 at 11:03 AM Derek Pan <[email protected]> wrote: > > Hi > > > > I think below function should be used by comparing two netxhop object with > different pointer. > > If this function is called, the X and Y always have different pointer values, > but if their values are same, they also can be treated as the same. > > I think the “return x== y;” should be replaced by “return 1;”. > > Please have a look. Thank. > > > > int > > nexthop__same(struct nexthop *x, struct nexthop *y) > > { > > for (; x && y; x = x->next, y = y->next) > > { > > if (!ipa_equal(x->gw, y->gw) || (x->iface != y->iface) || > > (x->flags != y->flags) || (x->weight != y->weight) || > > (x->labels_orig != y->labels_orig) || (x->labels != y->labels)) > > return 0; > > > > for (int i = 0; i < x->labels; i++) > > if (x->label[i] != y->label[i]) > > return 0; > > } > > > > return x == y; > > }
