2002-01-07 Michael Snyder <msnyder@redhat.com>
* cp-valprint.c (cp_print_value): FIXME comment, alloca size. * p-valprint.c (pascal_object_print_value): Ditto. * somread.c (som_symtab_read): Ditto. * symfile.c (simple_free_overlay_region_table): Ditto. * valops.c (value_assign): Ditto.
This commit is contained in:
parent
d33fc4e447
commit
34c0bd933d
@ -1,5 +1,11 @@
|
||||
2002-01-07 Michael Snyder <msnyder@redhat.com>
|
||||
|
||||
* cp-valprint.c (cp_print_value): FIXME comment, alloca size.
|
||||
* p-valprint.c (pascal_object_print_value): Ditto.
|
||||
* somread.c (som_symtab_read): Ditto.
|
||||
* symfile.c (simple_free_overlay_region_table): Ditto.
|
||||
* valops.c (value_assign): Ditto.
|
||||
|
||||
* tracepoint.c (tracepoint_save_command): From Klee Dienes --
|
||||
use tilde_expand and strerror for opening save-tracepoints file.
|
||||
|
||||
|
@ -570,6 +570,7 @@ cp_print_value (struct type *type, struct type *real_type, char *valaddr,
|
||||
&& ((boffset + offset) < 0
|
||||
|| (boffset + offset) >= TYPE_LENGTH (type)))
|
||||
{
|
||||
/* FIXME (alloca): unsafe if baseclass is really really large. */
|
||||
base_valaddr = (char *) alloca (TYPE_LENGTH (baseclass));
|
||||
if (target_read_memory (address + offset + boffset, base_valaddr,
|
||||
TYPE_LENGTH (baseclass)) != 0)
|
||||
|
@ -970,6 +970,7 @@ pascal_object_print_value (struct type *type, char *valaddr, CORE_ADDR address,
|
||||
|
||||
if (boffset != -1 && (boffset < 0 || boffset >= TYPE_LENGTH (type)))
|
||||
{
|
||||
/* FIXME (alloc): not safe is baseclass is really really big. */
|
||||
base_valaddr = (char *) alloca (TYPE_LENGTH (baseclass));
|
||||
if (target_read_memory (address + boffset, base_valaddr,
|
||||
TYPE_LENGTH (baseclass)) != 0)
|
||||
|
@ -99,12 +99,14 @@ som_symtab_read (bfd *abfd, struct objfile *objfile,
|
||||
|
||||
number_of_symbols = bfd_get_symcount (abfd);
|
||||
|
||||
/* FIXME (alloca): could be quite large. */
|
||||
buf = alloca (symsize * number_of_symbols);
|
||||
bfd_seek (abfd, obj_som_sym_filepos (abfd), SEEK_SET);
|
||||
val = bfd_bread (buf, symsize * number_of_symbols, abfd);
|
||||
if (val != symsize * number_of_symbols)
|
||||
error ("Couldn't read symbol dictionary!");
|
||||
|
||||
/* FIXME (alloca): could be quite large. */
|
||||
stringtab = alloca (obj_som_stringtab_size (abfd));
|
||||
bfd_seek (abfd, obj_som_str_filepos (abfd), SEEK_SET);
|
||||
val = bfd_bread (stringtab, obj_som_stringtab_size (abfd), abfd);
|
||||
|
@ -3009,6 +3009,7 @@ simple_free_overlay_region_table (void)
|
||||
static void
|
||||
read_target_long_array (CORE_ADDR memaddr, unsigned int *myaddr, int len)
|
||||
{
|
||||
/* FIXME (alloca): Not safe if array is very large. */
|
||||
char *buf = alloca (len * TARGET_LONG_BYTES);
|
||||
int i;
|
||||
|
||||
|
@ -697,6 +697,7 @@ value_assign (struct value *toval, struct value *fromval)
|
||||
int amount_copied;
|
||||
|
||||
/* Make the buffer large enough in all cases. */
|
||||
/* FIXME (alloca): Not safe for very large data types. */
|
||||
char *buffer = (char *) alloca (amount_to_copy
|
||||
+ sizeof (LONGEST)
|
||||
+ MAX_REGISTER_RAW_SIZE);
|
||||
|
Loading…
x
Reference in New Issue
Block a user