aboutsummaryrefslogtreecommitdiff
path: root/gdb/varobj-iter.h
diff options
context:
space:
mode:
authorYao Qi <yao@codesourcery.com>2013-11-12 20:49:52 +0800
committerYao Qi <yao@codesourcery.com>2014-06-12 15:27:19 +0800
commit827f100cee10ed58ef9d22de35ba1d61db73e541 (patch)
tree8febcc9d98d73986516271aa1d92fa65a09d3cae /gdb/varobj-iter.h
parente525021603958709381fc4dc296cc2586aaa5dd7 (diff)
downloadgdb-827f100cee10ed58ef9d22de35ba1d61db73e541.zip
gdb-827f100cee10ed58ef9d22de35ba1d61db73e541.tar.gz
gdb-827f100cee10ed58ef9d22de35ba1d61db73e541.tar.bz2
Iterate over 'struct varobj_item' instead of PyObject
In previous patch, "saved_item" is still a PyOjbect and iteration is still performed over PyObject. This patch continues to decouple iteration from python code, so it changes its type to "struct varobj_item *", so that the iterator itself is independent of python. V2: - Call varobj_delete_iter in free_variable. - Fix changelog entries. - Use XNEW. V3: - Return NULL early in py_varobj_iter_next if gdb_python_initialized is false. gdb: 2014-06-12 Pedro Alves <pedro@codesourcery.com> Yao Qi <yao@codesourcery.com> * python/py-varobj.c (py_varobj_iter_next): Return NULL if gdb_python_initialized is false. Move some code from varobj.c. * varobj-iter.h (struct varobj_item): Moved from varobj.c. * varobj.c: Move "varobj-iter.h" inclusion earlier. (struct varobj_item): Moved to varobj-iter.h". (varobj_clear_saved_item): New function. (update_dynamic_varobj_children): Move python-related code to py-varobj.c. (free_variable): Call varobj_clear_saved_item and varobj_iter_delete.
Diffstat (limited to 'gdb/varobj-iter.h')
-rw-r--r--gdb/varobj-iter.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/gdb/varobj-iter.h b/gdb/varobj-iter.h
index 3a530bc..9eb672d 100644
--- a/gdb/varobj-iter.h
+++ b/gdb/varobj-iter.h
@@ -14,9 +14,18 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-struct varobj_iter_ops;
+/* A node or item of varobj, composed of the name and the value. */
+
+typedef struct varobj_item
+{
+ /* Name of this item. */
+ char *name;
-typedef PyObject varobj_item;
+ /* Value of this item. */
+ struct value *value;
+} varobj_item;
+
+struct varobj_iter_ops;
/* A dynamic varobj iterator "class". */