[PATCH] guile: Type-check the argument to 'history-append!'

[email protected] (Ludovic Courtès)
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
The patch below add a missing type check in ‘history-append!’ (I’m guilty.)

OK to push?

Ludo’.

gdb/
2014-06-05  Ludovic Courtès  <[email protected]>

	* guile/scm-value.c (gdbscm_history_append_x): Use
	'vlscm_get_value_smob_arg_unsafe' instead of
	'vlscm_scm_to_value'.

gdb/testsuite/
2014-06-05  Ludovic Courtès  <[email protected]>

	* gdb.guile/scm-value.exp (test_value_in_inferior): Add test
	"history-append! type error".

diff --git a/gdb/guile/scm-value.c b/gdb/guile/scm-value.c
index 8e579a4..0ae8103 100644
--- a/gdb/guile/scm-value.c
+++ b/gdb/guile/scm-value.c
@@ -1295,9 +1295,11 @@ gdbscm_history_append_x (SCM value)
 {
   int res_index = -1;
   struct value *v;
+  value_smob *v_smob;
   volatile struct gdb_exception except;
 
-  v = vlscm_scm_to_value (value);
+  v_smob = vlscm_get_value_smob_arg_unsafe (value, SCM_ARG1, FUNC_NAME);
+  v = v_smob->value;
 
   TRY_CATCH (except, RETURN_MASK_ALL)
     {

diff --git a/gdb/testsuite/gdb.guile/scm-value.exp b/gdb/testsuite/gdb.guile/scm-value.exp
index 2784da2..425873e 100644
--- a/gdb/testsuite/gdb.guile/scm-value.exp
+++ b/gdb/testsuite/gdb.guile/scm-value.exp
@@ -71,6 +71,10 @@ proc test_value_in_inferior {} {
     gdb_test_no_output "guile (gc)"
     gdb_test "p \$\$" "= 42"
 
+    # Make sure 'history-append!' rejects non-value objects.
+    gdb_test "gu (history-append! 123)" \
+	"ERROR:.* Wrong type argument.*" "history-append! type error"
+
     # Test dereferencing the argv pointer.
 
     # Just get inferior variable argv the value history, available to guile.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.