* value.h (value_contents_equal): New prototype.

* value.c (value_contents_equal): New function.
* varobj.c: Include "exceptions.h" and "gdb_assert.h".  Don't
include <math.h>.
(varobj_set_value): Initialize error to zero.
(varobj_update): Rename error2 to error and initialize it to zero.
Slightly change the wording of some comments.
(my_value_equal): Reimplement using TRY_CATCH and
value_contents_equal.
This commit is contained in:
Mark Kettenis
2005-02-20 01:19:24 +00:00
parent 0ac0f72ae7
commit a6c442d881
4 changed files with 65 additions and 52 deletions

View File

@@ -358,6 +358,26 @@ value_contents_writeable (struct value *value)
return value->aligner.contents;
}
/* Return non-zero if VAL1 and VAL2 have the same contents. Note that
this function is different from value_equal; in C the operator ==
can return 0 even if the two values being compared are equal. */
int
value_contents_equal (struct value *val1, struct value *val2)
{
struct type *type1;
struct type *type2;
int len;
type1 = check_typedef (value_type (val1));
type2 = check_typedef (value_type (val2));
len = TYPE_LENGTH (type1);
if (len != TYPE_LENGTH (type2))
return 0;
return (memcmp (value_contents (val1), value_contents (val2), len) == 0);
}
int
value_optimized_out (struct value *value)
{