summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Prus <vladimir@codesourcery.com>2007-04-01 15:44:54 +0000
committerVladimir Prus <vladimir@codesourcery.com>2007-04-01 15:44:54 +0000
commitc365e4fa05009241ff58f640300ab447efe0513f (patch)
treed2255a884e74fbe6e54bc178199ff098caa2f468
parent4626bc93c9738b9cbe7c259e5a2e1de96c5bbbf7 (diff)
downloadgdb-c365e4fa05009241ff58f640300ab447efe0513f.tar.gz
* varobj.c (varobj_create): Keep varobj value
NULL when evaluating the type.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/varobj.c14
2 files changed, 14 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index eac38cdaa17..20f2a2d50f5 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-01 Vladimir Prus <vladimir@codesourcery.com>
+
+ * varobj.c (varobj_create): Keep varobj value
+ NULL when evaluating the type.
+
2007-03-31 Pedro Alves <pedro_alves@portugalmail.pt>
* NEWS: Mention new Windows CE support.
diff --git a/gdb/varobj.c b/gdb/varobj.c
index 7b2bfb838d2..1d8c8e8af54 100644
--- a/gdb/varobj.c
+++ b/gdb/varobj.c
@@ -433,7 +433,7 @@ varobj_create (char *objname,
{
char *p;
enum varobj_languages lang;
- struct value *value;
+ struct value *value = NULL;
/* Parse and evaluate the expression, filling in as much
of the variable's data as possible */
@@ -495,11 +495,15 @@ varobj_create (char *objname,
If evaluate_expression succeeds we got the value we wanted.
But if it fails, we still go on with a call to evaluate_type() */
if (!gdb_evaluate_expression (var->root->exp, &value))
- /* Error getting the value. Try to at least get the
- right type. */
- value = evaluate_type (var->root->exp);
+ {
+ /* Error getting the value. Try to at least get the
+ right type. */
+ struct value *type_only_value = evaluate_type (var->root->exp);
+ var->type = value_type (type_only_value);
+ }
+ else
+ var->type = value_type (value);
- var->type = value_type (value);
install_new_value (var, value, 1 /* Initial assignment */);
/* Set language info */