* varasm.c (struct rtx_const, struct pool_constant): Remove.
(MAX_RTX_HASH_TABLE): Remove.
(const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
(first_pool, last_pool, pool_offset): Remove.
(struct rtx_constant_pool): Split out from ...
(struct varasm_status): ... here. Reference one via pointer.
(struct constant_descriptor_rtx): Merge struct pool_constant.
(SYMHASH): Remove.
(decode_rtx_const): Remove.
(const_hash_rtx, compare_constant_rtx): Remove.
(record_constant_rtx): Remove.
(const_desc_rtx_hash, const_desc_rtx_eq): New.
(const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
(const_rtx_hash_1, const_rtx_hash): New.
(init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
(simplify_subtraction): Use simplify_rtx.
(force_const_mem): Rewrite to use new data structures.
(find_pool_constant): Likewise.
(get_pool_constant, get_pool_constant_mark,
get_pool_constant_for_function, get_pool_mode,
get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
(output_constant_pool_2): Split out from output_constant_pool.
(output_constant_pool_1): Likewise. Use new pool datastructures.
(output_constant_pool): Zap entire pool datastructure.
(mark_constant): Use new pool datastructures.
(mark_constants): Use for_each_rtx.
(mark_constant_pool): Use new pool datastructures.
From-SVN: r76985
2004-01-30 Felix Yen <fwy@alumni.brown.edu>
* testsuite/performance/20_util/allocator_thread.cc (do_loop):
Don't use clear, but instead assign. Use insert.
From-SVN: r76979
PR c/12818
* varasm.c (const_hash_1) <STRING_CST>: Use the
address to compute the hash value if flag_writable_strings.
(compare_constant) <STRING_CST>: Compare the addresses
if flag_writable_strings.
(build_constant_desc): Do not copy the expression for a
STRING_CST if flag_writable_strings.
From-SVN: r76958
(inChannelOperation): New field.
(isInChannelOperation): New accessor.
(setInChannelOperation): New modifier.
* gnu/java/nio/ServerSocketChannelImpl.java
(accept): Set and reset our server socket's PlainSocketImpl's
"in channel operation" indicator before and after delegating
the accept to our server socket.
* gnu/java/nio/SocketChannelImpl.java
(connect): Set and reset our socket's PlainSocketImpl's "in channel
operation" indicator before and after delegating the operation to
our socket.
(read): Likewise.
(write): Likewise.
* java/net/ServerSocket.java (implAccept): Don't throw an
IllegalBlockingModeException if we have a non-blocking
channel which initiated this accept operation.
* java/net/Socket.java (connect): Don't throw an
IllegalBlockingModeException if we have a non-blocking
channel which initiated this connect operation.
* java/nio/channels/spi/AbstractSelectableChannel.java
(configureBlocking): Only call implConfigureBlocking() if
the desired blocking mode is different from our current one.
From-SVN: r76956
2004-01-30 Paolo Carlini <pcarlini@suse.de>
* include/bits/basic_string.tcc (_Rep::_S_create):
Never allocate a string bigger than max_size(); always keep
__capacity and __size in sync to avoid memory leaks at
deallocation time.
From-SVN: r76955
* reload.c (secondary_memlocs_elim_used): New static variable.
(get_secondary_mem): Update it.
(find_reloads): Use it.
[[Split portion of a mixed commit.]]
From-SVN: r76949.2
* scripts/check_performance: Only compile with $THREAD_FLAG
when test is marked to require it. Allow multiple
compilations/executions of marked tests.
* testsuite/testsuite_performance.h (report_performance):
Report dynamic thread support status.
(report_header): Likewise.
* testsuite/performance/allocator.cc: Stabilize iteration
count. Support more allocators. Mark each allocator test to
run and report independently.
* testsuite/performance/allocator_map_thread.cc: Likewise.
* testsuite/performance/allocator_thread.cc: Likewise.
From-SVN: r76932
* java/io/BufferedReader.java (sbuf): New field.
(readLine): Use String.valueOf instead of new String() as per
Per Bothner's suggestion. Use instance sbuf field instead of a
local StringBuffer instance.
* java/io/InputStreamReader.java (read(char[],int,int)): Pass the
caller's buffer to refill().
(read(void)): Pass our internal work buffer to refill if our
input queue is empty.
(refill): Changed return type to int. Use the specified buffer
instead of our work buffer as per Bryce McKinlay's suggestion.
Return the number of characters read or -1 for EOF.
From-SVN: r76927
2004-01-29 Stephen M. Webb <stephen.webb@bregmasoft.com>
* config/local/generic/c_locale.h: Change ::malloc() to new char[].
* config/local/gnu/c_locale.h: Change ::malloc() to new char[].
* include/bits/stl_tempbuf.h: Convert _Temporary_buffer to use
std::get_temporary_buffer() instead of duplicating its code.
Update to C++STYLE conventions.
* include/std/std_memory.h (get_temporary_buffer): Use ::operator
new() instead of std::malloc().
(return_temporary_buffer): Use ::operator delete() instead of
std::free().
From-SVN: r76922
2004-01-29 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/allocator.h: Temporary switch to new_allocator as
the default to unjam bootstraps.
From-SVN: r76894
PR java/13824
* tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
recursion.
From-SVN: r76872
* gnu/java/awt/peer/gtk/GtkFramePeer.java
(gtkLayoutSetVisible): New method
(setMenuBar): Hide layout before setting MenuBar
and reshow it after.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
(gtkLayoutSetVisible): Hide or show the Gtk Layout.
From-SVN: r76861