mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-31 15:11:04 +08:00
re PR libfortran/40330 (incorrect IO)
PR libfortran/40330 Use heap memory for cached format strings. From-SVN: r148149
This commit is contained in:
parent
9e0667cd3a
commit
0c40d2340a
@ -1,3 +1,9 @@
|
||||
2009-06-04 Janne Blomqvist <jb@gcc.gnu.org>
|
||||
|
||||
PR libfortran/40330
|
||||
* io/format.c (free_format_hash_table): Also free and nullify hash key.
|
||||
(save_parsed_format): Copy string rather than pointer copy.
|
||||
|
||||
2009-05-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
||||
|
||||
PR fortran/40019
|
||||
|
@ -87,7 +87,12 @@ free_format_hash_table (gfc_unit *u)
|
||||
for (i = 0; i < FORMAT_HASH_SIZE; i++)
|
||||
{
|
||||
if (u->format_hash_table[i].hashed_fmt != NULL)
|
||||
free_format_data (u->format_hash_table[i].hashed_fmt);
|
||||
{
|
||||
free_format_data (u->format_hash_table[i].hashed_fmt);
|
||||
free_mem (u->format_hash_table[i].key);
|
||||
}
|
||||
u->format_hash_table[i].key = NULL;
|
||||
u->format_hash_table[i].key_len = 0;
|
||||
u->format_hash_table[i].hashed_fmt = NULL;
|
||||
}
|
||||
}
|
||||
@ -164,7 +169,11 @@ save_parsed_format (st_parameter_dt *dtp)
|
||||
free_format_data (u->format_hash_table[hash].hashed_fmt);
|
||||
u->format_hash_table[hash].hashed_fmt = NULL;
|
||||
|
||||
u->format_hash_table[hash].key = dtp->format;
|
||||
if (u->format_hash_table[hash].key != NULL)
|
||||
free_mem (u->format_hash_table[hash].key);
|
||||
u->format_hash_table[hash].key = get_mem (dtp->format_len);
|
||||
memcpy (u->format_hash_table[hash].key, dtp->format, dtp->format_len);
|
||||
|
||||
u->format_hash_table[hash].key_len = dtp->format_len;
|
||||
u->format_hash_table[hash].hashed_fmt = dtp->u.p.fmt;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user