summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Jacobowitz <dan@debian.org>2002-07-10 17:18:16 +0000
committerDaniel Jacobowitz <dan@debian.org>2002-07-10 17:18:16 +0000
commitc14abffb81b1e9400803c4ab08cdea2a4e8ca234 (patch)
tree34eaed9b34f80becc1a3b1ea46fe9cf8dd856510
parentb3f2b968aa458b4bd5b88652628693409e96f4b0 (diff)
downloadgdb-c14abffb81b1e9400803c4ab08cdea2a4e8ca234.tar.gz
2002-07-10 Daniel Jacobowitz <drow@mvista.com>
* valops.c (find_overload_match): Free oload_syms.
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/valops.c5
2 files changed, 9 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 904f9348c4d..da434f38a6e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2002-07-10 Daniel Jacobowitz <drow@mvista.com>
+
+ * valops.c (find_overload_match): Free oload_syms.
+
2002-07-09 Joel Brobecker <brobecker@gnat.com>
Define HAVE_SYS_PROC_H if sys/proc.h exists
diff --git a/gdb/valops.c b/gdb/valops.c
index df42e097bd3..e4c1db423a9 100644
--- a/gdb/valops.c
+++ b/gdb/valops.c
@@ -2707,6 +2707,7 @@ find_overload_match (struct type **arg_types, int nargs, char *name, int method,
register int jj;
register int ix;
int static_offset;
+ struct cleanup *cleanups = NULL;
char *obj_type_name = NULL;
char *func_name = NULL;
@@ -2748,6 +2749,7 @@ find_overload_match (struct type **arg_types, int nargs, char *name, int method,
}
oload_syms = make_symbol_overload_list (fsym);
+ cleanups = make_cleanup (xfree, oload_syms);
while (oload_syms[++i])
num_fns++;
if (!num_fns)
@@ -2904,6 +2906,9 @@ find_overload_match (struct type **arg_types, int nargs, char *name, int method,
}
*objp = temp;
}
+ if (cleanups != NULL)
+ do_cleanups (cleanups);
+
return oload_incompatible ? 100 : (oload_non_standard ? 10 : 0);
}