nemiver r881 - in trunk: . src/persp/dbgperspective



Author: dodji
Date: Sun Jun 29 19:34:24 2008
New Revision: 881
URL: http://svn.gnome.org/viewvc/nemiver?rev=881&view=rev

Log:
fix some data inconsistencies in the location variables inspector


Modified:
   trunk/ChangeLog
   trunk/src/persp/dbgperspective/nmv-local-vars-inspector.cc
   trunk/src/persp/dbgperspective/nmv-variables-utils.cc
   trunk/src/persp/dbgperspective/nmv-variables-utils.h

Modified: trunk/src/persp/dbgperspective/nmv-local-vars-inspector.cc
==============================================================================
--- trunk/src/persp/dbgperspective/nmv-local-vars-inspector.cc	(original)
+++ trunk/src/persp/dbgperspective/nmv-local-vars-inspector.cc	Sun Jun 29 19:34:24 2008
@@ -406,15 +406,17 @@
                                   true, false);
     }
 
-    void update_a_function_argument (const IDebugger::VariableSafePtr a_var)
+    /// \return true if the variable was found in the TreeModel, false
+    ///  otherwise. If the variable was found, the function updates it.
+    bool update_a_function_argument (const IDebugger::VariableSafePtr a_var)
     {
         LOG_FUNCTION_SCOPE_NORMAL_DD;
         THROW_IF_FAIL (tree_view);
 
         Gtk::TreeModel::iterator parent_row_it;
         get_function_arguments_row_iterator (parent_row_it);
-        vutil::update_a_variable (a_var, *tree_view, parent_row_it,
-                                  true, false);
+        return vutil::update_a_variable (a_var, *tree_view, parent_row_it,
+                                         true, false);
     }
 
     void update_a_derefed_variable (const IDebugger::VariableSafePtr a_var)
@@ -663,7 +665,9 @@
                 append_a_function_argument (a_walker->get_variable ());
             } else {
                 LOG_DD ("updating an argument in substree");
-                update_a_function_argument (a_walker->get_variable ());
+                if (!update_a_function_argument (a_walker->get_variable ())) {
+                    append_a_function_argument (a_walker->get_variable ());
+                }
             }
         }
 

Modified: trunk/src/persp/dbgperspective/nmv-variables-utils.cc
==============================================================================
--- trunk/src/persp/dbgperspective/nmv-variables-utils.cc	(original)
+++ trunk/src/persp/dbgperspective/nmv-variables-utils.cc	Sun Jun 29 19:34:24 2008
@@ -182,7 +182,7 @@
     return false;
 }
 
-void
+bool
 update_a_variable (const IDebugger::VariableSafePtr a_var,
                    const Gtk::TreeView &a_tree_view,
                    Gtk::TreeModel::iterator &a_parent_row_it,
@@ -194,12 +194,14 @@
 
     Gtk::TreeModel::iterator row_it;
     if (!find_a_variable (a_var, a_parent_row_it, row_it)) {
-        THROW ("could not find variable in inspector: "
-                + a_var->name ());
+        LOG_ERROR ("could not find variable in inspector: "
+                   + a_var->name ());
+        return false;
     }
     update_a_variable_real (a_var, a_tree_view,
                             row_it, a_handle_highlight,
                             a_is_new_frame);
+    return true;
 }
 
 static void

Modified: trunk/src/persp/dbgperspective/nmv-variables-utils.h
==============================================================================
--- trunk/src/persp/dbgperspective/nmv-variables-utils.h	(original)
+++ trunk/src/persp/dbgperspective/nmv-variables-utils.h	Sun Jun 29 19:34:24 2008
@@ -84,7 +84,7 @@
                       const Gtk::TreeModel::iterator &a_parent_row_it,
                       Gtk::TreeModel::iterator &a_out_row_it);
 
-void update_a_variable (const IDebugger::VariableSafePtr a_var,
+bool update_a_variable (const IDebugger::VariableSafePtr a_var,
                         const Gtk::TreeView &a_tree_view,
                         Gtk::TreeModel::iterator &a_parent_row_it,
                         bool a_handle_highlight,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]