Written by Fred Fish <fnf@cygnus.com>
Rewritten by Jim Blandy <jimb@cygnus.com>
- Copyright 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002, 2003, 2007 Free Software Foundation, Inc.
This file is part of GDB.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
#include "defs.h"
#include "gdb_obstack.h"
/* Find a copy of the LENGTH bytes at ADDR in BCACHE. If BCACHE has
never seen those bytes before, add a copy of them to BCACHE. In
either case, return a pointer to BCACHE's copy of that string. */
-void *
-bcache (const void *addr, int length, struct bcache *bcache)
+static void *
+bcache_data (const void *addr, int length, struct bcache *bcache)
{
unsigned long full_hash;
unsigned short half_hash;
}
}
+void *
+deprecated_bcache (const void *addr, int length, struct bcache *bcache)
+{
+ return bcache_data (addr, length, bcache);
+}
+
+const void *
+bcache (const void *addr, int length, struct bcache *bcache)
+{
+ return bcache_data (addr, length, bcache);
+}
\f
/* Allocating and freeing bcaches. */
{
/* Allocate the bcache pre-zeroed. */
struct bcache *b = XCALLOC (1, struct bcache);
- obstack_specify_allocation (&b->cache, 0, 0, xmalloc, xfree);
+ /* We could use obstack_specify_allocation here instead, but
+ gdb_obstack.h specifies the allocation/deallocation
+ functions. */
+ obstack_init (&b->cache);
return b;
}
print_percentage (int portion, int total)
{
if (total == 0)
- printf_filtered ("(not applicable)\n");
+ /* i18n: Like "Percentage of duplicates, by count: (not applicable)" */
+ printf_filtered (_("(not applicable)\n"));
else
- printf_filtered ("%3d%%\n", portion * 100 / total);
+ printf_filtered ("%3d%%\n", (int) (portion * 100.0 / total));
}
xfree (entry_size);
}
- printf_filtered (" Cached '%s' statistics:\n", type);
- printf_filtered (" Total object count: %ld\n", c->total_count);
- printf_filtered (" Unique object count: %lu\n", c->unique_count);
- printf_filtered (" Percentage of duplicates, by count: ");
+ printf_filtered (_(" Cached '%s' statistics:\n"), type);
+ printf_filtered (_(" Total object count: %ld\n"), c->total_count);
+ printf_filtered (_(" Unique object count: %lu\n"), c->unique_count);
+ printf_filtered (_(" Percentage of duplicates, by count: "));
print_percentage (c->total_count - c->unique_count, c->total_count);
printf_filtered ("\n");
- printf_filtered (" Total object size: %ld\n", c->total_size);
- printf_filtered (" Unique object size: %ld\n", c->unique_size);
- printf_filtered (" Percentage of duplicates, by size: ");
+ printf_filtered (_(" Total object size: %ld\n"), c->total_size);
+ printf_filtered (_(" Unique object size: %ld\n"), c->unique_size);
+ printf_filtered (_(" Percentage of duplicates, by size: "));
print_percentage (c->total_size - c->unique_size, c->total_size);
printf_filtered ("\n");
- printf_filtered (" Max entry size: %d\n", max_entry_size);
- printf_filtered (" Average entry size: ");
+ printf_filtered (_(" Max entry size: %d\n"), max_entry_size);
+ printf_filtered (_(" Average entry size: "));
if (c->unique_count > 0)
printf_filtered ("%ld\n", c->unique_size / c->unique_count);
else
- printf_filtered ("(not applicable)\n");
- printf_filtered (" Median entry size: %d\n", median_entry_size);
+ /* i18n: "Average entry size: (not applicable)" */
+ printf_filtered (_("(not applicable)\n"));
+ printf_filtered (_(" Median entry size: %d\n"), median_entry_size);
printf_filtered ("\n");
- printf_filtered (" Total memory used by bcache, including overhead: %ld\n",
+ printf_filtered (_(" Total memory used by bcache, including overhead: %ld\n"),
c->structure_size);
- printf_filtered (" Percentage memory overhead: ");
+ printf_filtered (_(" Percentage memory overhead: "));
print_percentage (c->structure_size - c->unique_size, c->unique_size);
- printf_filtered (" Net memory savings: ");
+ printf_filtered (_(" Net memory savings: "));
print_percentage (c->total_size - c->structure_size, c->total_size);
printf_filtered ("\n");
- printf_filtered (" Hash table size: %3d\n", c->num_buckets);
- printf_filtered (" Hash table expands: %lu\n",
+ printf_filtered (_(" Hash table size: %3d\n"), c->num_buckets);
+ printf_filtered (_(" Hash table expands: %lu\n"),
c->expand_count);
- printf_filtered (" Hash table hashes: %lu\n",
+ printf_filtered (_(" Hash table hashes: %lu\n"),
c->total_count + c->expand_hash_count);
- printf_filtered (" Half hash misses: %lu\n",
+ printf_filtered (_(" Half hash misses: %lu\n"),
c->half_hash_miss_count);
- printf_filtered (" Hash table population: ");
+ printf_filtered (_(" Hash table population: "));
print_percentage (occupied_buckets, c->num_buckets);
- printf_filtered (" Median hash chain length: %3d\n",
+ printf_filtered (_(" Median hash chain length: %3d\n"),
median_chain_length);
- printf_filtered (" Average hash chain length: ");
+ printf_filtered (_(" Average hash chain length: "));
if (c->num_buckets > 0)
printf_filtered ("%3lu\n", c->unique_count / c->num_buckets);
else
- printf_filtered ("(not applicable)\n");
- printf_filtered (" Maximum hash chain length: %3d\n", max_chain_length);
+ /* i18n: "Average hash chain length: (not applicable)" */
+ printf_filtered (_("(not applicable)\n"));
+ printf_filtered (_(" Maximum hash chain length: %3d\n"), max_chain_length);
printf_filtered ("\n");
}