This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 3/4] Fix some aspects of python lazy string handling: scheme addition
- From: Doug Evans <dje at google dot com>
- To: gdb-patches at sourceware dot org, eliz at gnu dot org, pmuldoon at redhat dot com
- Date: Mon, 07 Nov 2016 01:17:18 +0000
- Subject: [PATCH 3/4] Fix some aspects of python lazy string handling: scheme addition
- Authentication-results: sourceware.org; auth=none
Hi. This is a simple internal addition to the scheme support.
I separated it out for myself, as it helped to keep the python and scheme
sides comparable.
2016-11-06 Doug Evans <dje@google.com>
* guile/guile-internal.h (tyscm_scm_to_type): Declare.
* guile/scm-type.c (tyscm_scm_to_type): New function.
diff --git a/gdb/guile/guile-internal.h b/gdb/guile/guile-internal.h
index 5f819b8..3597706 100644
--- a/gdb/guile/guile-internal.h
+++ b/gdb/guile/guile-internal.h
@@ -561,6 +561,8 @@ extern SCM tyscm_scm_from_type (struct type *type);
extern type_smob *tyscm_get_type_smob_arg_unsafe (SCM type_scm, int
arg_pos,
const char *func_name);
+extern struct type *tyscm_scm_to_type (SCM t_scm);
+
extern struct type *tyscm_type_smob_type (type_smob *t_smob);
extern SCM tyscm_scm_from_field (SCM type_scm, int field_num);
diff --git a/gdb/guile/scm-type.c b/gdb/guile/scm-type.c
index 2acdfad..35d6588 100644
--- a/gdb/guile/scm-type.c
+++ b/gdb/guile/scm-type.c
@@ -347,6 +347,19 @@ tyscm_get_type_smob_arg_unsafe (SCM self, int arg_pos,
const char *func_name)
return t_smob;
}
+/* Return the type field of T_SCM, an object of type <gdb:type>.
+ This exists so that we don't have to export the struct's contents. */
+
+struct type *
+tyscm_scm_to_type (SCM t_scm)
+{
+ type_smob *t_smob;
+
+ gdb_assert (tyscm_is_type (t_scm));
+ t_smob = (type_smob *) SCM_SMOB_DATA (t_scm);
+ return t_smob->type;
+}
+
/* Helper function for save_objfile_types to make a deep copy of the
type. */
static int