Comparing well names protects againts NULL.
This commit is contained in:
parent
dee5c880ea
commit
43faea6678
@ -552,7 +552,22 @@ wells_equal(const struct Wells *W1, const struct Wells *W2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (int i=0; i<W1->number_of_wells; i++) {
|
for (int i=0; i<W1->number_of_wells; i++) {
|
||||||
are_equal = are_equal && (strcmp(W1->name[i], W2->name[i]) == 0);
|
if (are_equal) {
|
||||||
|
/*
|
||||||
|
The name attribute can be NULL. The comparison is as
|
||||||
|
follows:
|
||||||
|
|
||||||
|
1. If both names are different from NULL a normal
|
||||||
|
strcmp() is performed.
|
||||||
|
2. If both names are NULL they compare as equal.
|
||||||
|
3. If one name is NULL and the other is not NULL
|
||||||
|
they are regarded as different.
|
||||||
|
*/
|
||||||
|
if (W1->name[i] && W2->name[i])
|
||||||
|
are_equal = are_equal && (strcmp(W1->name[i], W2->name[i]) == 0);
|
||||||
|
else
|
||||||
|
are_equal = are_equal && (W1->name[i] == W2->name[i]);
|
||||||
|
}
|
||||||
are_equal = are_equal && (W1->type[i] == W2->type[i]);
|
are_equal = are_equal && (W1->type[i] == W2->type[i]);
|
||||||
are_equal = are_equal && (W1->depth_ref[i] == W2->depth_ref[i]);
|
are_equal = are_equal && (W1->depth_ref[i] == W2->depth_ref[i]);
|
||||||
are_equal = are_equal && (well_controls_equal(W1->ctrls[i], W2->ctrls[i]));
|
are_equal = are_equal && (well_controls_equal(W1->ctrls[i], W2->ctrls[i]));
|
||||||
|
Loading…
Reference in New Issue
Block a user