diff options
author | Doug Evans <dje@google.com> | 2016-11-06 16:10:00 -0800 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2017-03-16 09:26:18 -0700 |
commit | a3a5feccd26be653efbdf1408874b98962baaa50 (patch) | |
tree | f93ed928cc32277f5bf2ebb186e11d417026aafa | |
parent | f8d995870f957d5fd32fb21fb4afe76a754ddf31 (diff) | |
download | gdb-a3a5feccd26be653efbdf1408874b98962baaa50.zip gdb-a3a5feccd26be653efbdf1408874b98962baaa50.tar.gz gdb-a3a5feccd26be653efbdf1408874b98962baaa50.tar.bz2 |
New function tyscm_scm_to_type.
gdb/ChangeLog:
* guile/guile-internal.h (tyscm_scm_to_type): Declare.
* guile/scm-type.c (tyscm_scm_to_type): New function.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/guile/guile-internal.h | 2 | ||||
-rw-r--r-- | gdb/guile/scm-type.c | 13 |
3 files changed, 20 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9010d6f..14c9561 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2017-03-16 Doug Evans <dje@google.com> + + * guile/guile-internal.h (tyscm_scm_to_type): Declare. + * guile/scm-type.c (tyscm_scm_to_type): New function. + 2017-03-16 Jiong Wang <jiong.wang@arm.com> * inf-ptrace.c (inf_ptrace_peek_poke): Change the type to diff --git a/gdb/guile/guile-internal.h b/gdb/guile/guile-internal.h index d6c4214..361245f 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 42a8ad2..b3036ad 100644 --- a/gdb/guile/scm-type.c +++ b/gdb/guile/scm-type.c @@ -333,6 +333,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 |