OSDN Git Service

* libgcj.spec.in (*jc1): Added -fasynchronous-exceptions.
[pf3gnuchains/gcc-fork.git] / libjava / ChangeLog
1 2000-04-28  Tom Tromey  <tromey@cygnus.com>
2
3         * libgcj.spec.in (*jc1): Added -fasynchronous-exceptions.
4         Fix for PR gcj/218.
5
6 2000-04-23  Tom Tromey  <tromey@cygnus.com>
7
8         * prims.cc (DECLARE_PRIM_TYPE): Define a vtable as well.
9         (_Jv_PrimClass): Set `methods' by calling _Jv_FindArrayClass.
10         * include/jvm.h (struct _Jv_ArrayVTable): Declare.
11         (NUM_OBJECT_METHODS): New define.
12         * java/lang/natClassLoader.cc (_Jv_FindArrayClass): Added
13         `array_vtable' parameter.  Added assertion.
14         * java/lang/Class.h (_Jv_FindArrayClass): Added `array_vtable'
15         parameter.
16
17 2000-04-28  Bryce McKinlay  <bryce@albatross.co.nz>
18
19         * libjava/java/lang/String.java (toString): Remove `final' hack.
20
21 2000-04-05  Tom Tromey  <tromey@cygnus.com>
22
23         Runtime support for PR gcj/2:
24         * prims.cc (_Jv_ThrowNullPointerException): New function.
25         * include/jvm.h (_Jv_ThrowNullPointerException): Declare.
26
27 2000-04-27  Bryce McKinlay  <bryce@albatross.co.nz>
28
29         * prims.cc (_Jv_NewObjectArray): Fix typo.
30
31 2000-04-26  Tom Tromey  <tromey@cygnus.com>
32
33         * Makefile.in: Rebuilt.
34         * Makefile.am (AM_CXXFLAGS): Added -fasynchronous-exceptions.
35
36 2000-04-24  Jeff Sturm  <jsturm@sigma6.com>
37
38         * gnu/gcj/runtime/natFirstThread.cc (run): Initialize class before
39         calling main.
40
41 2000-04-22  Anthony Green  <green@cygnus.com>
42
43         * include/jvm.h (__builtin_expect): Define as unused for now.
44         * java/lang/natObject.cc (_Jv_MonitorEnter): Add __builtin_expect.
45         (notify): Ditto.
46         (notifyAll): Ditto.
47         (wait): Ditto.
48         (_Jv_MonitorExit): Ditto.
49         * boehm.cc (_Jv_MarkObj): Ditto.
50         (_Jv_MarkObj): Ditto.
51         (_Jv_MarkArray): Ditto.
52         (_Jv_AllocBytes): Ditto.
53         * prims.cc (_Jv_AllocObject): Ditto.
54         (_Jv_NewObjectArray): Ditto.
55         (_Jv_NewPrimArray): Ditto.
56         (_Jv_Malloc): Ditto.
57         (_Jv_Realloc): Ditto.
58         (_Jv_MallocUnchecked): Ditto.
59         (_Jv_divI): Ditto.
60         (_Jv_remI): Ditto.
61         (_Jv_divJ): Ditto.
62         (_Jv_remJ): Ditto.
63
64         * include/Makefile.in: Rebuilt.
65         * include/Makefile.am (include_HEADERS): Add jvmpi.h.
66
67 2000-04-21  Tom Tromey  <tromey@cygnus.com>
68
69         * java/io/PipedInputStream.java, java/io/PipedOutputStream.java:
70         Yet another new version from Classpath.
71
72         Fix for PR libgcj/15:
73         * java/util/natGregorianCalendar.cc (_REENTRANT,
74         _POSIX_PTHREAD_SEMANTICS): Don't define.
75         * java/net/natInetAddress.cc (_REENTRANT): Don't define.
76         * java/lang/natSystem.cc (_REENTRANT, _POSIX_PTHREAD_SEMANTICS):
77         Don't define.
78         * java/io/natFile.cc (_REENTRANT, _POSIX_PTHREAD_SEMANTICS): Don't
79         define.
80         * configure: Rebuilt.
81         * configure.in: If using POSIX threads, define _REENTRANT if
82         needed.  Define _POSIX_PTHREAD_SEMANTICS.  Don't define
83         GETHOSTBYNAME_R_NEEDS_REENTRANT.
84
85         * java/io/PipedInputStream.java, java/io/PipedReader.java,
86         java/io/PipedOutputStream.java, java/io/PipedWriter.java: New
87         version from Classpath.
88
89         Fix for PR libgcj/213:
90         * Makefile.in: Rebuilt.
91         * Makefile.am (gij_SOURCES): Added gij.cc.
92         (EXTRA_gij_SOURCES): Removed.
93         (gij_LDADD): Removed gij.lo.
94         (gij_DEPENDENCIES): Likewise.
95         ($(gij_OBJECTS)): Depend on nat_headers.
96
97         * gnu/gcj/protocol/file/Handler.java (openConnection): Use
98         `setURL', not `url.set'.
99
100 2000-04-20  Tom Tromey  <tromey@cygnus.com>
101
102         Fix for PR java.io/204:
103         * java/io/PipedInputStream.java, java/io/PipedReader.java,
104         java/io/PipedOutputStream.java, java/io/PipedWriter.java: Imported
105         from Classpath.
106
107         Fix for PR libgcj/212:
108         * gcj/javaprims.h (_Jv_word, _Jv_word2): Removed definitions.
109         * include/jvm.h (_Jv_word, _Jv_word2): Define.
110         * java/lang/Class.h (_Jv_word): Declare.
111
112         * jni.cc (_Jv_JNI_PopSystemFrame): Clear `env->ex'.
113
114 2000-04-19  Tom Tromey  <tromey@cygnus.com>
115
116         * jni.cc (_Jv_JNI_FindClass): Use system class loader if class
117         doesn't have a loader.
118
119 2000-04-19  Bryce McKinlay  <bryce@albatross.co.nz>
120
121         * boehm.cc: (_Jv_MarkObj, _Jv_MarkArray): Cast pointers for
122         MAYBE_MARK to ptr_t, for compatibility with new GC version.
123
124 2000-04-16  Bryce McKinlay  <bryce@albatross.co.nz>
125
126         * java/io/natFileDescriptorPosix.cc (open): Use mode 0666. Fix for PR
127         libgcj/202.
128         (available): Initialize `where' to prevent bogus compiler warning.
129
130 2000-04-12  Tom Tromey  <tromey@cygnus.com>
131
132         * java/lang/natString.cc (intern): Temporarily disable finalizer
133         registration.
134
135         * java/lang/natString.cc (unintern): Added `obj' argument.
136         (intern): Register finalizer for string.
137         * java/lang/String.java (unintern): Now static; added obj
138         argument.
139
140 2000-04-11  Tom Tromey  <tromey@cygnus.com>
141
142         * java/util/Vector.java (VectorEnumeration): Now `final'.
143         * java/util/Hashtable.java (HashtableEntry): Now `final'.
144         (HashtableEnumeration): Likewise.
145         * java/util/zip/ZipFile.java (ZipEnumeration): Now `final'.
146         * java/text/RuleBasedCollator.java (RBCElement): Now `final'.
147
148 2000-04-10  Warren Levy  <warrenl@cygnus.com>
149
150         * java/io/ObjectStreamException.java: New file.
151         * java/io/OptionalDataException.java: New file.
152         * java/io/StreamCorruptedException.java: New file.
153         * java/math/BigDecimal.java: New file.
154         * java/sql/CallableStatement.java: New file.
155         * java/sql/Connection.java: New file.
156         * java/sql/DataTruncation.java: New file.
157         * java/sql/DatabaseMetaData.java: New file.
158         * java/sql/Date.java: New file.
159         * java/sql/Driver.java: New file.
160         * java/sql/DriverManager.java: New file.
161         * java/sql/DriverPropertyInfo.java: New file.
162         * java/sql/PreparedStatement.java: New file.
163         * java/sql/ResultSet.java: New file.
164         * java/sql/ResultSetMetaData.java: New file.
165         * java/sql/SQLException.java: New file.
166         * java/sql/SQLWarning.java: New file.
167         * java/sql/Statement.java: New file.
168         * java/sql/Time.java: New file.
169         * java/sql/Timestamp.java: New file.
170         * java/sql/Types.java: New file.
171         * Makefile.am: Added above new files.
172         * Makefile.in: Rebuilt.
173
174         * mauve-libgcj: Turned on java.math, java.sql and java.security tests.
175         * java/net/MulticastSocket.java (MulticastSocket): Pass values a la
176         DatagramSocket constructor instead of null.
177
178 2000-04-08  Anthony Green  <green@cygnus.com>
179
180         * include/posix-threads.h (_Jv_MutexUnlock): Replace
181         _JV_NOT_OWNER.
182         
183 2000-04-08  Anthony Green  <green@cygnus.com>
184
185         * posix-threads.cc (_Jv_MutexLock): Moved back to posix-threads.h.
186         (_Jv_MutexUnlock): Ditto.
187         * include/posix-threads.h (_Jv_MutexLock): From posix-threads.cc.
188         (_Jv_MutexUnlock): Ditto.
189
190 2000-04-08  Anthony Green  <green@cygnus.com>
191
192         * java/lang/StringBuffer.java (ensureCapacity): Don't call Math::max.
193         (ensureCapacity_unsynchronized): New private method.
194         (append): Use ensureCapacity_unsynchronized.
195
196 2000-04-08  Tom Tromey  <tromey@cygnus.com>
197
198         * Makefile.in: Rebuilt.
199         * Makefile.am (awt_java_source_files): Added new files.
200         * java/awt/IllegalComponentStateException.java: New file.
201         * java/awt/ItemSelectable.java: New file.
202         * java/awt/event/WindowEvent.java: Finished.
203         * java/awt/event/TextEvent.java: Finished.
204         * java/awt/event/ContainerEvent.java: New file.
205         * java/awt/Component.java (getX, getY): New methods.
206         * java/awt/event/PaintEvent.java: New file.
207         * java/awt/event/MouseEvent.java: New file.
208         * java/awt/ActiveEvent.java: New file.
209         * java/awt/event/KeyEvent.java: Finished.
210         * java/awt/event/ItemEvent.java: New file.
211         * java/awt/Adjustable.java: New file.
212         * java/awt/event/InputMethodEvent.java: New file.
213         * java/awt/event/InputEvent.java: Finished.
214         * java/awt/event/FocusEvent.java: New file.
215         * java/awt/event/MouseMotionAdapter.java: New file.
216         * java/awt/event/MouseAdapter.java: New file.
217         * java/awt/event/KeyAdapter.java: New file.
218         * java/awt/event/FocusAdapter.java: New file.
219         * java/awt/event/ContainerAdapter.java: New file.
220         * java/awt/event/ComponentEvent.java: Finished.
221         * java/awt/event/AdjustmentEvent.java: New file.
222         * java/awt/event/ComponentAdapter.java: New file.
223         * java/awt/event/ActionEvent.java: Finished.
224         * java/awt/event/MouseMotionListener.java: New file.
225         * java/awt/event/MouseListener.java: New file.
226         * java/awt/event/ItemListener.java: New file.
227         * java/awt/event/InputMethodListener.java: New file.
228         * java/awt/event/ContainerListener.java: New file.
229         * java/awt/event/FocusListener.java: New file.
230         * java/awt/event/ComponentListener.java: New file.
231         * java/awt/event/AWTEventListener.java: New file.
232         * java/awt/event/AdjustmentListener.java: New file.
233
234 2000-04-08  Anthony Green  <green@cygnus.com>
235
236         * java/lang/natObject.cc (_Jv_MonitorEnter): Only perform null
237         check when we have to.
238
239         * gcj/array.h: Mark elements(JArray<T>& x) and elements(JArray<T>*
240         x) as `inline'.
241
242         * java/util/StringTokenizer.java: Minor optimization.  Eliminates
243         one method call.
244
245         * java/util/Vector.java (VectorEnumeration.nextElement): Manually
246         inline hasMoreElements.
247
248 2000-04-05  Tom Tromey  <tromey@cygnus.com>
249
250         * configure: Rebuilt.
251         * configure.in: Recognize --enable-java-awt.
252         (AWT): New conditional.
253         * Makefile.in: Rebuilt.
254         * Makefile.am (toolexeclib_LTLIBRARIES): Build libgcjawt.la if
255         requested.
256         (libgcjawt_la_SOURCES): New macro.
257         (EXTRA_libgcjawt_la_SOURCES): Likewise.
258         (libgcjawt_la_DEPENDENCIES): Likewise.
259         (libgcjawt_la_LIBADD): Likewise.
260         (libgcjawt_la_LDFLAGS): Likewise.
261         (libgcj.zip): Depend on cond_java_awt_source_files
262         (cond_awt_java_source_files): New macro.
263         (MOSTLYCLEANFILES): Added awto_files.
264         (awto_files): New macro.  Use where javao_files used.
265         (nat_headers): Use cond_awt_java_source_files.
266
267 2000-04-04  Tom Tromey  <tromey@cygnus.com>
268
269         * Makefile.in: Rebuilt.
270         * Makefile.am (awt_java_source_files): Added AWTException.java.
271         * java/awt/AWTException.java: New file.
272
273 2000-04-03  Tom Tromey  <tromey@cygnus.com>
274
275         * include/jvm.h (_Jv_GetArrayElementFromElementType): More
276         commentary from Alex.
277
278         * Makefile.in: Rebuilt.
279         * Makefile.am ($(javao_files)): Depend on libgcj.zip.
280         From H.J. Lu.
281
282 Sun Apr  2 08:27:18 2000  Anthony Green  <green@redhat.com>
283
284         * configure: Rebuilt.
285         * configure.in: Add --disable-jvmpi.
286         * include/config.h.in: Rebuilt.
287         * acconfig.h: Add ENABLE_JVMPI.
288          
289         * include/jvm.h: Declare _Jv_DisableGC and _Jv_EnableGC.
290         (_Jv_JVMPI_Notify_OBJECT_ALLOC): New define.
291         (_Jv_JVMPI_Notify_THREAD_END): New define.
292         (_Jv_JVMPI_Notify_THREAD_END): New define.
293         * prims.cc (_Jv_JVMPI_Notify_OBJECT_ALLOC): Declare.
294         (_Jv_JVMPI_Notify_THREAD_END): Declare.
295         (_Jv_JVMPI_Notify_THREAD_END): Declare.
296
297         * prims.cc (_Jv_AllocObject): Generate JVMPI object allocation
298         events.
299
300         * java/lang/natThread.cc: Include JVMPI headers if necessary.
301         (finish_): Generate JVMPI thread end events.
302         (run_): Generate JVMPI thread start events.
303         * gnu/gcj/runtime/natFirstThread.cc (run): Call JNI_OnLoad for any
304         preloaded JNI library.
305         Include JVMPI headers if necessary.
306         (run): Generate JVMPI thread start events.
307
308         * boehm.cc: Define GC_disable and GC_enable.
309         (_Jv_DisableGC): New function.
310         (_Jv_EnableGC): New function.
311         (disable_gc_mutex): Declare.
312         * nogc.cc (_Jv_DisableGC): New function.
313         (_Jv_EnableGC): New function.
314           
315         * jni.cc (_Jv_JNI_GetEnv): Handle JVMPI interface requests.
316         (_Jv_JVMPI_Interface): Define.
317         (jvmpiEnableEvent): New function.
318         (_Jv_JNI_Init): Initialize _Jv_JVMPI_Interface.
319           
320         * include/jvmpi.h: New file.
321
322 2000-03-27  Bryce McKinlay  <bryce@albatross.co.nz>
323
324         * Makefile.in: New #defines and friends for Thread.h.
325         * Makefile.am: Ditto.
326         * posix-threads.cc: (struct starter): Remove `object'.
327         (_Jv_CondWait): Use interruptable condition variables and new
328         recursive mutexes. New return codes on interrupt or non-ownership
329         of mutex.
330         (_Jv_CondNotify): Ditto.
331         (_Jv_CondNotifyAll): Ditto.
332         (_Jv_ThreadInterrupt): Set thread interrupt flag directly. Interrupt
333         the target thread by signaling its wait condition.
334         (_Jv_ThreadInitData): Set `thread_obj' in the thread data struct,
335         not the starter struct. Initialize wait_mutex and wait_cond.
336         (_Jv_MutexLock): New recursive mutex implementation. Moved from 
337         posix-threads.h.
338         (_Jv_MutexUnlock): Ditto.
339         (really_start): Set info->data->thread from pthread_self() to work 
340         around a race condition. Destroy wait_mutex and wait_cond when run()
341         returns.
342         * java/lang/Thread.java: (isInterrupted_): Renamed to overloaded
343         `isInterrupted(boolean)'. Clear interrupted flag if clear_flag is
344         set.
345         startable_flag: New private field.
346         (Thread): Initialize `startable_flag'.
347         (toString): Check for null thread group.
348         * java/lang/natThread.cc: (struct natThread): New fields 
349         `join_mutex', `join_cond'. Removed fields `joiner', `next'.
350         (class locker): Removed.
351         (initialize_native): Initialize `join_cond' and `join_mutex'.
352         (interrupt): Now just calls _Jv_ThreadInterrupt().
353         (join): Simplified. Just wait on the target thread's join condition.
354         (finish_): Remove join list code. Unset thread group. Signal
355         potential joiners by notifying the dying threads join_cond.
356         (start): Check for illegal restarts.
357         * java/lang/natObject.cc: Check for return value of _Jv_CondWait and
358         act appropriatly.
359         * include/posix-threads.h: Remove all HAVE_RECURSIVE_MUTEX related
360         #defines and #ifdefs.
361         (struct _Jv_Thread_t): New fields `thread_obj', `wait_cond',
362         `wait_mutex', `next'.
363         (struct _Jv_ConditionVariable_t): Define as a struct instead of 
364         directly mapping to pthread_cond_t.
365         (struct _Jv_Mutex_t): New recursive implementation.
366         (_Jv_PthreadCheckMonitor): Reimplemented. Simple `owner' check.
367         _Jv_HaveCondDestroy: Never define this for posix-threads.
368         (_Jv_CondNotify): Remove inline implementation(s), prototype instead.
369         (_Jv_CondNotifyAll): Ditto.
370         (_Jv_MutexLock): Ditto.
371         (_Jv_MutexUnlock): Ditto.
372         (_Jv_MutexInit): Changed to reflect new mutex implementation.
373         (_Jv_MutexDestroy): Ditto.
374         (_Jv_CondDestroy): Removed.
375         (_Jv_PthreadGetMutex): Removed.
376         * include/win32-threads.h: (_Jv_CondNotify): Guess _JV_NOT_OWNER on an 
377         error. Add a FIXME about this.
378         (_Jv_CondNotifyAll): Ditto.
379         * win32-threads.cc: (_Jv_CondWait): Return 0 on a timeout. Guess 
380         _JV_NOT_OWNER on other errors. Add FIXME.
381
382 2000-03-26  Tom Tromey  <tromey@cygnus.com>
383
384         * jni.cc (_Jv_JNI_PopSystemFrame): If environment has exception
385         set, throw it.
386         (call): Don't throw exception here.
387
388 2000-03-26  Tom Tromey  <tromey@cygnus.com>
389
390         * java/lang/mprec.h: Use SIZEOF_VOID_P.
391         * interpret.cc: Use SIZEOF_VOID_P.
392         * include/java-cpool.h (_Jv_storeLong): Use SIZEOF_VOID_P.
393         (_Jv_loadLong): Likewise.
394         (_Jv_storeDouble): Likewise.
395         * configure: Rebuilt.
396         * configure.in: Check size of void*.
397
398         * resolve.cc (ncode): Use FFI_PREP_RAW_CLOSURE and FFI_RAW_SIZE.
399
400 2000-03-26  Hans Boehm  <boehm@acm.org>
401
402         * include/java-cpool.h (_Jv_storeLong, _Jv_loadLong,
403         _Jv_storeDouble, _Jv_loadDouble): Define differently on 64 bit
404         machine.
405         * java/lang/ieeefp.h: Define __IEEE_BIG_ENDIAN or
406         __IEEE_LITTLE_ENDIAN appropriately on IA64.
407         * java/lang/mprec.h: Don't define Pack_32 on 64 bit machine.
408         * javaprims.h (_Jv_word): Added `l' and `d' entries in 64 bit
409         case.
410         * resolve.cc (FFI_PREP_RAW_CLOSURE): New define.
411         (FFI_RAW_SIZE): Likewise.
412         (_Jv_InterpMethod::ncode): Use them.
413         * interpret.cc (PUSHL, PUSHD, POPL, POPD, LOADL, LOADD, STOREL,
414         STORED): Define differently on a 64 bit machine.
415         (continue1): Use ffi_java_raw_call when appropriate.
416  
417 2000-03-24  Warren Levy  <warrenl@cygnus.com>
418
419         * java/math/BigInteger.java(divide): Handle the special case when
420         dividing by 1 and the high bit of the dividend is set.
421         (setShiftRight): Handle case when count == 0.
422
423 2000-03-24  Warren Levy  <warrenl@cygnus.com>
424
425         * java/awt/Font.java(isBold): Fix syntax error.
426         (isItalic): ditto.
427         * java/awt/Frame.java(postEvent): ditto.
428         * java/awt/Menu.java(postEvent): ditto.
429         * java/awt/MenuBar.java(postEvent): ditto.
430         * java/awt/Toolkit.java(init): Included a stub.
431
432 2000-03-21  Bryce McKinlay  <bryce@albatross.co.nz>
433
434         * java/awt/Event.java: Add all the event type constants.
435         (Event): Implemented constructors.
436         (controlDown): Implemented.
437         (metaDown): Implemented.
438         (paramString): Stubbed.
439         (shiftDown): Implemented.
440         (toString): Implemented.
441         (translate): Implemented.
442
443 2000-03-21  Bryce McKinlay  <bryce@albatross.co.nz>
444
445         * java/lang/natClass.cc (isInstance): Initialize `this'.
446         (isAssignableFrom): Initialize `this' and `klass'.
447         (_Jv_IsAssignableFrom): If an interface has no idt, it is not 
448         implemented by any loaded class, so return false.
449         * java/lang/natClass.cc (isInstance): Use _Jv_IsAssignableFrom(), 
450         not Class.isAssignableFrom(). Use JV_CLASS, not getClass().
451
452 2000-03-19  Warren Levy  <warrenl@cygnus.com>
453
454         * java/awt/Color.java: Specified java.io for Serializable.
455         * java/awt/Toolkit.java: Imported java.net.URL.
456
457 2000-03-19  Warren Levy  <warrenl@cygnus.com>
458
459         * java/awt/Color.java: Rewrote to be more memory efficient (& compile).
460
461 2000-03-16  Warren Levy  <warrenl@cygnus.com>
462
463         * java/awt/Color.java: New file.
464         * java/awt/Graphics.java: New file.
465         * java/awt/Image.java: New file.
466         * java/awt/Paint.java: New file.
467         * java/awt/PaintContext.java: New file.
468         * java/awt/Transparency.java: New file.
469         * java/util/Collection.java: New file.
470         * java/util/Comparator.java: New file.
471         * java/util/Iterator.java: New file.
472         * java/util/List.java: New file.
473         * java/util/ListIterator.java: New file.
474         * Makefile.am: Added above new files.
475         * Makefile.in: Rebuilt.
476
477         * java/awt/Font.java (PLAIN): New field.
478         (BOLD): New field.
479         (ITALIC): New field.
480         (ROMAN_BASELINE): New field.
481         (CENTER_BASELINE): New field.
482         (HANGING_BASELINE): New field.
483         (name): New field.
484         (style): New field.
485         (size): New field.
486         (pointSize): New field.
487         (Font): Implemented constructor.
488         (isPlain): Implemented method.
489         (isBold): Implemented method.
490         (isItalic): Implemented method.
491         (getName): Implemented method.
492         (getStyle): Implemented method.
493         (getSize): Implemented method.
494         (getSize2D): Implemented method.
495         (decode): Stubbed.
496         * java/awt/Frame.java (getFont): Stubbed.
497         (postEvent): Stubbed.
498         (remove): Stubbed.
499         * java/awt/Menu.java (postEvent): Stubbed.
500         * java/awt/MenuBar.java (getFont): Stubbed.
501         (postEvent): Stubbed.
502         * java/awt/Toolkit.java (getImage): Added abstract method.
503
504 2000-03-15  Tom Tromey  <tromey@cygnus.com>
505
506         * java/io/natFileDescriptorWin32.cc (winerr): Now static.
507
508         * prims.cc (win32_exception_handler): Reformatted.
509
510         * include/win32-threads.h (_Jv_HaveCondDestroy): New define.
511         (_Jv_HaveMutexDestroy): Likewise.
512
513 2000-03-15 Jon Beniston <jb7216@bristol.ac.uk>
514
515         * java/io/natFileDescriptorWin32.cc: New file.
516         * java/io/natFileWin32.cc: New file.
517         * java/net/natInetAddress.cc: Added conditional inclusion of
518         Windows / Winsock headers.
519         * java/net/natPlainDatagramSocketImpl.cc: Added conditional
520         inclusion of Windows / Winsock headers.
521         * java/net/natPlainSocketImpl.cc: Added conditional inclusion of
522         Windows / Winsock headers.
523         * include/win32-signal.h: New file.
524         * include/win32-threads.h: New file.
525         * win32-threads.cc: New file.
526         * exception.cc (win32_get_restart_frame): New function.
527         * prims.cc (win32_exception_handler): New function.
528         (main_init) Performs Winsock initialisation.
529         (main_init) Installs exeception handler.
530
531 2000-03-14  Tom Tromey  <tromey@cygnus.com>
532
533         * jni.cc (mangled_name): Fixed assertion.
534         (JNI_GetCreatedJavaVMs): Don't comment out `buf_len' argument;
535         turned assert into actual failure.
536
537 2000-03-09  Warren Levy  <warrenl@cygnus.com>
538
539         * java/security/Key.java(serialVersionUID): Set to 0 for now.
540         * java/security/interfaces/DSAPrivateKey.java(serialVersionUID): Ditto.
541         * java/security/interfaces/DSAPublicKey.java(serialVersionUID): Ditto.
542
543 2000-03-09  Warren Levy  <warrenl@cygnus.com>
544
545         * java/security/AlgorithmParameterGeneratorSpi.java: New file.
546         * java/security/DigestException.java: New file.
547         * java/security/GeneralSecurityException.java: New file.
548         * java/security/InvalidAlgorithmParameterException.java: New file.
549         * java/security/InvalidKeyException.java: New file.
550         * java/security/InvalidParameterException.java: New file.
551         * java/security/Key.java: New file.
552         * java/security/KeyException.java: New file.
553         * java/security/KeyPair.java: New file.
554         * java/security/KeyPairGenerator.java: New file.
555         * java/security/KeyPairGeneratorSpi.java: New file.
556         * java/security/NoSuchProviderException.java: New file.
557         * java/security/PrivateKey.java: New file.
558         * java/security/Provider.java: New file.
559         * java/security/PublicKey.java: New file.
560         * java/security/SecureRandom.java: New file.
561         * java/security/Security.java: New file.
562         * java/security/Signature.java: New file.
563         * java/security/SignatureException.java: New file.
564         * java/security/interfaces/DSAKey.java: New file.
565         * java/security/interfaces/DSAParams.java: New file.
566         * java/security/interfaces/DSAPrivateKey.java: New file.
567         * java/security/interfaces/DSAPublicKey.java: New file.
568         * java/security/interfaces/RSAPrivateCrtKey.java: New file.
569         * java/security/interfaces/RSAPrivateKey.java: New file.
570         * java/security/interfaces/RSAPublicKey.java: New file.
571         * java/security/spec/AlgorithmParameterSpec.java: New file.
572         * java/security/spec/InvalidKeySpecException.java: New file.
573         * java/security/spec/InvalidParameterSpecException.java: New file.
574         * java/security/spec/KeySpec.java: New file.
575         * java/security/spec/RSAPrivateCrtKeySpec.java: New file.
576         * java/security/spec/RSAPrivateKeySpec.java: New file.
577         * java/security/spec/RSAPublicKeySpec.java: New file.
578         * Makefile.am: Added above java.security files.
579         * Makefile.in: Rebuilt.
580
581         * java/security/MessageDigest.java: Rewritten.
582         * java/security/SecureClassLoader.java: Added JDK1.2 comment.
583
584 2000-03-09  Bryce McKinlay  <bryce@albatross.co.nz>
585
586         * README: Updated.
587
588 2000-03-09  Bryce McKinlay  <bryce@albatross.co.nz>
589
590         * java/lang/natClassLoader.cc (_Jv_FindArrayClass): Call
591         _Jv_PrepareConstantTimeTables.
592         * java/lang/natClass.cc (_Jv_PrepareConstantTimeTables): Array
593         classes should have an IDT, so don't return if klass is an array
594         class.
595
596 2000-03-08  Tom Tromey  <tromey@cygnus.com>
597
598         * java/lang/reflect/natArray.cc (newInstance): Don't allow array
599         of `void' to be created.
600
601 2000-03-08  Warren Levy  <warrenl@cygnus.com>
602
603         * java/math/BigInteger.java(signum): Handle zero properly.
604
605 2000-03-07  Tom Tromey  <tromey@cygnus.com>
606
607         * All files: Updated copyright information.
608         * COPYING: New file.
609         * COPYING.LIB: Removed.
610         * LIBGCJ_LICENSE: We now use GPL + special exception.
611
612 2000-03-07  Bryce McKinlay  <bryce@albatross.co.nz>
613
614         * resolve.cc (_Jv_SearchMethodInClass): New function.
615         (_Jv_ResolvePoolEntry): Search superinterfaces for interface methods.
616         * java/lang/Class.h (_Jv_SearchMethodInClass): New prototype.
617
618 2000-03-07  Bryce McKinlay  <bryce@albatross.co.nz>
619
620         * java/lang/Class.h (union _Jv_IDispatchTable): New declaration.
621         (struct _Jv_ifaces): New declaration.
622         JV_CLASS: New macro definition.
623         (getComponentType): Relocate below isArray() for inlining.
624         (getModifiers): Declare `inline'.
625         (getSuperclass): Ditto.
626         (isArray): Ditto.
627         (isPrimitive): Ditto.
628         (_Jv_IsAssignableFrom): New prototype.
629         (_Jv_LookupInterfaceMethodIdx): New prototype. Predeclare with "C"
630         linkage.
631         (_Jv_InitClass): Move from natClass.cc. Declare `inline'.
632         Check for JV_STATE_DONE before invoking initializeClass().
633         (_Jv_PrepareConstantTimeTables): New prototype.
634         (_Jv_GetInterfaces): Ditto.
635         (_Jv_GenerateITable): Ditto.
636         (_Jv_GetMethodString): Ditto.
637         (_Jv_AppendPartialITable): Ditto.
638         (_Jv_FindIIndex): Ditto.
639         depth, ancestors, idt: New class fields.
640
641         * java/lang/natClass.cc (isAssignableFrom): Move functionality to
642         inline function `_Jv_IsAssignableFrom'. Use that function.
643         (isInstance): Declare `inline'.
644         (initializeClass): Get lock on class before checking `state'. Unlock 
645         before calling resolveClass0. Call _Jv_PrepareConstantTimeTables with 
646         the lock held.
647         (_Jv_LookupInterfaceMethod): Use _Jv_GetMessageString.
648         (_Jv_IsAssignableFrom): New inline function. Test assignability using 
649         class->depth and ancestor table.
650         (_Jv_IsInstanceOf): Use _Jv_IsAssignableFrom.
651         (_Jv_CheckCast): Move from prims.cc. Use JV_CLASS and
652         _Jv_IsAssignableFrom.
653         (_Jv_CheckArrayStore): Ditto.
654         (_Jv_LookupInterfaceMethodIdx): New function. 
655         INITIAL_IOFFSETS_LEN, INITIAL_IFACES_LEN: New #defines.
656         (_Jv_PrepareConstantTimeTables): New function.
657         (_Jv_IndexOf): Ditto.
658         (_Jv_GetInterfaces): Ditto.
659         (_Jv_GenerateITable): Ditto.
660         (_Jv_GetMethodString): Ditto.
661         (_Jv_AppendPartialITable): Ditto.
662         iindex_mutex, iindex_mutex_initialized: New static fields.
663         (_Jv_FindIIndex): New function.
664
665         * java/lang/natClassLoader.cc (_Jv_NewClass): Set new jclass fields.
666
667         * prims.cc (_Jv_CheckCast): Moved to natClass.cc.
668         (_Jv_CheckArrayStore): Ditto.
669         (JvNewCharArray, JvNewBooleanArray, JvNewByteArray, JvNewShortArray,
670         JvNewIntArray, JvNewLongArray, JvNewFloatArray, JvNewDoubleArray):
671         Moved to gcj/array.h.
672         (_Jv_Realloc): New function.
673
674         * gcj/cni.h: Move _Jv_PrimClass definitions to gcj/array.h.
675
676         * gcj/array.h: _Jv_PrimClass definitions moved from gcj/cni.h.
677         (JvNewCharArray, JvNewBooleanArray, JvNewByteArray,
678         JvNewShortArray, JvNewIntArray, JvNewLongArray, JvNewFloatArray,
679         JvNewDoubleArray): Implementations moved from prims.cc and
680         declared `inline'.
681
682         * gcj/javaprims.h (_Jv_Realloc): Prototype.
683
684         * include/jvm.h (_Jv_LookupInterfaceMethodIdx): Prototype.
685
686 2000-03-06  Tom Tromey  <tromey@cygnus.com>
687
688         * jni.cc (MARK_NONE): New define.
689         (MARK_USER): Likewise.
690         (MARK_SYSTEM): Likewise.
691         (struct _Jv_JNI_LocalFrame): Made `marker' bigger and `size'
692         smaller.
693         (_Jv_JNI_DeleteLocalRef): Use MARK_NONE in assert.
694         (_Jv_JNI_EnsureLocalCapacity): Use MARK_NONE.
695         (_Jv_JNI_PushLocalFrame): Use MARK_USER.
696         (_Jv_JNI_PopLocalFrame): New version with additional `stop'
697         argument.
698         (call): Use MARK_SYSTEM.
699         (_Jv_GetJNIEnvNewFrame): New function.
700         (_Jv_LookupJNIMethod): New function.
701         (_Jv_JNI_PopSystemFrame): New function.
702         (call): Use _Jv_JNI_PopSystemFrame and _Jv_LookupJNIMethod.
703
704 2000-03-05  Tom Tromey  <tromey@cygnus.com>
705
706         Fix for PR libgcj/43:
707         * include/Makefile.in: Rebuilt.
708         * include/Makefile.am (include_HEADERS): New define.
709
710 2000-03-05  Anthony Green  <green@redhat.com>
711
712         * gcj/javaprims.h ("Java"): Remove FirstThread.
713
714         * configure.host: Fix __NO_MATH_INLNES botch.
715
716         * Makefile.in: Rebuilt.
717         * Makefile.am (nat_source_files): Move natFirstThread.cc.
718         (gnu/gcj/runtime/FirstThread.h): Moved.
719         (ordinary_java_source_files): Move FirstThread.java.
720         * prims.cc: Deal with FirstThread movement.
721         (JvRunMain): Ditto.
722         (_Jv_RunMain): Ditto.
723
724         * gnu/gcj/runtime/FirstThread.java: Moved from java/lang.
725         * gnu/gcj/runtime/natFirstThread.cc: Ditto.
726
727 2000-03-05  Warren Levy  <warrenl@cygnus.com>
728
729         * java/net/DatagramSocket.java(DatagramSocket(int,InetAddress)):
730           Handle null addresses.
731
732 2000-03-04  Anthony Green  <green@redhat.com>
733
734         * configure.host (libgcj_flags): Define __NO_MATH_INLINES.
735         See PR gcj/151.
736
737 2000-03-04  Anthony Green  <green@redhat.com>
738
739         * configure: Rebuilt.
740         * configure.in (ZLIBTESTSPEC): New macro.
741         (GCTESTSPEC): New macro.
742         (LIBGCJTESTSPEC): New macro.
743         * libgcj-test.spec.in: New file.
744
745 2000-03-02  Tom Tromey  <tromey@cygnus.com>
746
747         * include/java-interp.h: Don't include MethodInvocation.h.
748         (class _Jv_InterpMethod): Don't make MethodInvocation a friend.
749         * Makefile.in: Rebuilt.
750         * Makefile.am (gnu/gcj/runtime/MethodInvocation.h): Removed.
751         (ordinary_java_source_files): Don't mention
752         MethodInvocation.java.
753         * gnu/gcj/runtime/MethodInvocation.java: Removed.
754         * interpret.cc (MethodInvocation::continue1): Removed.
755         (run): Handle exceptions here.
756         * java/lang/ClassLoader.java (defineClass1, defineClass2):
757         Removed.
758         * java/lang/natClassLoader.cc (defineClass0): Catch exceptions
759         here.
760         (defineClass2): Removed.
761
762         * java/lang/reflect/Method.java (hack_trampoline, hack_call):
763         Removed.
764         * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Catch
765         exceptions here.
766         (hack_call): Removed.
767
768         * java/lang/Class.h (Class): Removed hackRunInitializers,
769         hackTrampoline.
770         * java/lang/natClass.cc (hackRunInitializers): Removed.
771         (initializeClass): Catch exceptions here.
772         Include ExceptionInInitializerError.h.
773         * java/lang/Class.java (hackTrampoline, hackRunInitializers):
774         Removed.
775
776         * java/lang/Object.h (Object): Don't mention hack12_6.
777         * java/lang/natObject.cc (_Jv_FinalizeObject): Catch exceptions
778         here.
779         * java/lang/Object.java (hack12_6): Removed.
780
781         * java/lang/natThread.cc (run_): Renamed.  Catch exceptions here.
782         (start): Use run_, not run__.
783         * java/lang/Thread.java (run_): Renamed from run__; old run_
784         removed.
785
786         * jni.cc (_Jv_JNI_FindClass): Handle exceptions.
787         (_Jv_JNI_EnsureLocalCapacity): Likewise.
788         (_Jv_JNI_DefineClass): Likewise.
789         (_Jv_JNI_ThrowNew): Likewise.
790         (_Jv_JNI_AllocObject): Likewise.
791         (_Jv_JNI_GetAnyMethodID): Likewise.
792         (_Jv_JNI_CallAnyMethodV): Likewise.
793         (_Jv_JNI_CallAnyMethodA): Likewise.
794         (_Jv_JNI_CallAnyVoidMethodV): Likewise.
795         (_Jv_JNI_CallAnyVoidMethodA): Likewise.
796         (_Jv_JNI_GetAnyFieldID): Likewise.
797         (_Jv_JNI_NewString): Likewise.
798         (_Jv_JNI_NewStringUTF): Likewise.
799         (_Jv_JNI_GetStringUTFChars): Likewise.
800         (_Jv_JNI_NewObjectArray): Likewise.
801         (_Jv_JNI_NewPrimitiveArray): Likewise.
802         (_Jv_JNI_GetPrimitiveArrayRegion): Likewise.
803         (_Jv_JNI_GetStringRegion): Likewise.
804         (_Jv_JNI_GetStringUTFRegion): Likewise.
805         (_Jv_JNI_SetPrimitiveArrayRegion): Likewise.
806         (_Jv_JNI_MonitorEnter): Likewise.
807         (_Jv_JNI_MonitorExit): Likewise.
808         (_Jv_JNI_ToReflectedField): Likewise.
809         (_Jv_JNI_ToReflectedMethod): Likewise.
810         (_Jv_JNI_RegisterNatives): Likewise.
811         (_Jv_JNI_AttachCurrentThread): Likewise.
812         (_Jv_JNI_DestroyJavaVM): Likewise.
813
814 2000-02-28  Mo DeJong  <mdejong@cygnus.com>
815
816         * java/util/zip/ZipOutputStream.java(closeEntry) : Fixed
817         error caused by the incorrect casting of a long to an int.
818
819 2000-02-28  Mo DeJong  <mdejong@cygnus.com>
820
821         * java/util/zip/ZipOutputStream.java(write_entry) : Fixed
822         SIGSEV caused by use of the wrong instance variable.
823
824 2000-02-27  Bryce McKinlay  <bryce@albatross.co.nz>
825
826         * java/io/File.java (File(String, String)): For dirPath, treat an
827         empty String the same as `null'.
828
829 2000-02-26  Anthony Green  <green@cygnus.com>
830
831         * gnu/gcj/io/MimeTypes.java: Test for null.
832
833         * jni.cc (_Jv_JNI_AttachCurrentThread): Minor cleanup.
834         (JNI_GetCreatedJavaVMs): Remove compiler warning.
835
836         * java/net/URLConnection.java: Update copyright notice.
837
838 2000-02-25  Tom Tromey  <tromey@cygnus.com>
839
840         * jni.cc (_Jv_JNI_RegisterNatives): Conditionalize body on
841         `INTERPRETER'.
842
843 2000-02-25  Bryce McKinlay  <bryce@albatross.co.nz>
844
845         * java/net/URLConnection.java (initializeDateFormats): New
846         private method.
847         (getHeaderFieldDate): Call initializeDateFormats if required.
848         locale, dateFormat1, dateFormat2, dateFormat3: Don't initialize
849         these.
850         Fix for PR libgcj/38.
851
852 2000-02-24  Warren Levy  <warrenl@cygnus.com>
853
854         * java/math/BigInteger.java(ival): Made private.
855         (words): Ditto.
856         (neg): Ditto.
857
858 2000-02-20  Anthony Green  <green@cygnus.com>
859
860         * Makefile.in: Rebuilt.
861         * Makefile.am (ordinary_java_source_files): Add
862         gnu/gcj/io/DefaultMimeTypes.java and gnu/gcj/io/MimeTypes.java
863
864         * scripts/MakeDefaultMimeTypes.java: New file.
865         * scripts/mime.types: New file.
866         * scripts/classes.pl: Moved from top level.
867         * classes.pl: Moved to scripts directory.
868
869         * java/net/URLConnection.java: Implement guessContentTypeFromName.
870
871         * gnu/gcj/io/MimeTypes.java: New file.
872         * gnu/gcj/io/DefaultMimeTypes.java: New file.
873
874 2000-02-20  Tom Tromey  <tromey@cygnus.com>
875
876         * boehm.cc (_Jv_AllocBytes): Clear returned memory.
877
878 2000-02-19  Bryce McKinlay  <bryce@albatross.co.nz>
879
880         * java/util/zip/ZipEntry.java (setCrc): Fix overflow.
881         (setSize): ditto.
882
883 2000-02-18  Tom Tromey  <tromey@cygnus.com>
884
885         * include/jvm.h (_Jv_GetJavaVM): Declare.
886         * include/java-interp.h (_Jv_GetFirstMethod): New function.
887         (_Jv_MethodBase::get_method): New method.
888         (_Jv_JNIMethod::set_function): New method.
889         * jni.cc (_Jv_JNI_UnregisterNatives): New function.
890         (_Jv_JNI_RegisterNatives): New function.
891         (_Jv_JNIFunctions): Updated for new functions.
892         (_Jv_GetJavaVM): New function.
893         (_Jv_JNI_GetJavaVM): Use it.  Now static.
894         (_Jv_JNI_AttachCurrentThread): Create a new JNIEnv if this thread
895         is already a Java thread but does not have a JNIEnv yet.
896
897         * java/lang/natRuntime.cc (_load): Pass the JavaVM to the onload
898         function.
899
900 2000-02-17  Tom Tromey  <tromey@cygnus.com>
901
902         * gcj/field.h (_Jv_Field::getClass): Don't use JvAssert.
903         Fixes PR gcj/152.
904
905 2000-02-16  Tom Tromey  <tromey@cygnus.com>
906
907         * jni.cc (_Jv_JNI_CallStaticMethodV): Added some assertions.
908
909         * jni.cc (_Jv_JNI_NewObjectV): Corrected assertion.
910         (_Jv_JNI_NewObject): Likewise.
911         (_Jv_JNI_NewObjectA): Likewise.
912         (_Jv_JNI_CallAnyMethodV): In constructor case, pass correct value
913         as "return" type to _Jv_CallAnyMethodA.
914         (_Jv_JNI_CallAnyMethodA): Likewise.
915         (_Jv_JNI_CallAnyVoidMethodV): Likewise.
916
917         * jni.cc (_Jv_JNI_FindClass): Use ClassLoader.loadClass, not
918         findClass.
919
920 2000-02-15  Tom Tromey  <tromey@cygnus.com>
921
922         * resolve.cc (ncode): Set args_raw_size.  Compute jni_cif and
923         jni_arg_types.
924         (init_cif): Added `rtype_p' argument.
925         * include/java-interp.h (class _Jv_MethodBase): Added
926         args_raw_size.
927         (class _Jv_InterpMethod): Removed args_raw_size.
928         (class _Jv_JNIMethod): Added jni_cif and jni_arg_types fields.
929         * jni.cc (call): Pass JNIEnv and (for static methods only) the
930         class pointer as well as the ordinary arguments.
931
932         * jni.cc (mangled_name): Skip leading `(' in signature.
933
934         * jni.cc (add_char): Added missing `else'.
935
936         * jni.cc (_Jv_JNI_AttachCurrentThread): Return error if malloc
937         fails.
938
939 2000-02-15  Bryce McKinlay  <bryce@albatross.co.nz>
940
941         * NEWS: Updated.
942
943         * java/lang/natRuntime.cc (_load): Include library path with
944         exception message.
945
946         * java/lang/natSystem.cc (init_properties): set java.lang.classpath 
947         property.
948
949         * java/lang/natThread.cc (dumpStack): Removed.
950         * java/lang/Thread.java (dumpStack): Implemented.
951
952 2000-02-15  Tom Tromey  <tromey@cygnus.com>
953
954         * java/lang/natRuntime.cc (_load): On Unix, prefix library name
955         with `lib' for loadLibrary.  Fixes PR gcj/150.
956
957 2000-02-14  Warren Levy  <warrenl@cygnus.com>
958
959         * gnu/gcj/math/MPN.java(findLowestBit): Made methods public.
960
961         * java/math/BigInteger.java(BigInteger(int,int,java.util.Random):
962           New constructor.
963         (min): Implemented.
964         (max): Implemented.
965         (modPow): Rewritten to not use the naive, slow, brute force approach.
966         (isProbablePrime): Implemented.
967         (testBit): Implemented.
968         (flipBit): Implemented.
969         (getLowestSetBit): Implemented.
970
971 2000-02-16  Anthony Green  <green@redhat.com>
972
973         * configure.host: Use the same options for i386 and i486 as we do
974         for i586 and i686.
975
976 2000-02-12  Tom Tromey  <tromey@cygnus.com>
977
978         * java/io/File.java (createTempFile): Use low bits from counter,
979         not high bits.
980
981 Fri Feb 11 19:48:08 2000  Anthony Green  <green@cygnus.com>
982
983         * THANKS: More thanks.
984
985 2000-02-11  Tom Tromey  <tromey@cygnus.com>
986
987         * interpret.cc (continue1): Use STOREA, not STOREI, to implement
988         astore instruction.  From Hans Boehm.
989
990 2000-02-11  Warren Levy  <warrenl@cygnus.com>
991
992         * java/math/BigInteger.java(BigInteger(String, int)): New constructor.
993         (BigInteger(String)): New constructor.
994         (not): Rewritten using version from Kawa's BitOps class.
995         (valueOf): New private methods from Kawa's BitOps class.
996         (swappedOp): ditto.
997         (bitOp): ditto.
998         (setBitOp): ditto.
999         (and): Implemented.
1000         (or): Implemented.
1001         (xor): Implemented.
1002         (andNot): Implemented.
1003         (clearBit): Implemented.
1004         (setBit): Implemented.
1005         (bitCount): Implemented.
1006         (toByteArray): Implemented.
1007
1008 2000-02-11  Tom Tromey  <tromey@cygnus.com>
1009
1010         * java/io/File.java (nextValue): Now synchronized.
1011
1012 2000-02-10  Tom Tromey  <tromey@cygnus.com>
1013
1014         * java/io/natFileDescriptorPosix.cc (open): Recognize EXCL flag.
1015         * java/io/FileDescriptor.java (EXCL): New static field.
1016         * java/io/File.java (tmpdir): New static field.
1017         (createTempFile): New method.
1018         (nextValue): New method.
1019         * java/lang/natSystem.cc (init_properties): Set java.io.tmpdir
1020         property.
1021
1022         * include/jni.h (JNI_FALSE): Renamed from JNI_TRUE; oops.
1023         (jboolean): Declare as an attributed int, not a bool.
1024         (_Jv_func): Declare differently for C.
1025
1026         * gnu/gcj/jni/natNativeThread.cc: New file.
1027         * gnu/gcj/jni/NativeThread.java: New file.
1028         * java/lang/Thread.java (data): Now a RawData.
1029         * include/jvm.h (_Jv_GetCurrentJNIEnv, _Jv_SetCurrentJNIEnv):
1030         Declare.
1031         * Makefile.in: Rebuilt.
1032         * Makefile.am (java/lang/Thread.h): New target.
1033         (ordinary_java_source_files): Added NativeThread.java.
1034         (nat_source_files): Added natNativeThread.cc.
1035         * java/lang/natThread.cc: Include <jni.h>
1036         (struct natThread): Added `jni_env' field.
1037         (_Jv_GetCurrentJNIEnv): New function.
1038         (_Jv_SetCurrentJNIEnv): Likewise.
1039         (initialize_native): Initialize jni_env.
1040         Include RawData.h.
1041         * jni.cc (ThreadGroupClass): New define.
1042         (_Jv_JNI_InvokeFunctions): New structure.
1043         (JNI_GetCreatedJavaVMs): New function.
1044         (the_vm): New global.
1045         (JNI_GetDefaultJavaVMInitArgs): New function.
1046         Include NativeThread.h.
1047         (NativeThreadClass): New define.
1048         (_Jv_JNI_EnsureLocalCapacity): Return JNI_ERR, not -1.
1049         (_Jv_JNI_DestroyJavaVM): New function.
1050         (_Jv_JNI_AttachCurrentThread): New function.
1051         (_Jv_JNI_DetachCurrentThread): New function.
1052         (_Jv_JNI_GetEnv): New function.
1053         (JNI_CreateJavaVM): New function.
1054         (_Jv_JNI_GetJavaVM): New function.
1055         (_Jv_JNIFunctions): Added entry for GetJavaVM.
1056         * include/jni.h (JavaVMAttachArgs): New structure.
1057         (JNI_EDETACHED): New define.
1058         (JNI_EVERSION): Likewise.
1059         (JavaVM): Define properly.
1060         (struct JNIInvokeInterface): New structure.
1061         (class _Jv_JavaVM): New class.
1062         (JNI_OnLoad, JNI_OnUnload): Declare.
1063         (JNI_GetDefaultJavaVMInitArgs, JNI_CreateJavaVM,
1064         JNI_GetCreatedJavaVMs): Declare.
1065         (JavaVMInitArgs): New typedef.
1066         (JavaVMOption): Likewise.
1067         (JNI_ERR): New define.
1068         (JNI_OK): Likewise.
1069
1070 2000-02-10  Andrew Haley  <aph@cygnus.com>
1071
1072         * interpret.cc: Don't include fdlibm.h.
1073         Replace #if with #ifdef throughout.
1074         Declare extern __ieee754_fmod.
1075         (continue1): Remove op_getfield, op_getstatic, op_putfield,
1076         op_putstatic insns.
1077         * resolve.cc (_Jv_PrepareClass): Use imeth as method pointer.
1078         Search class hierarchy for superclass vtable.
1079
1080         * java/lang/natClassLoader.cc (_Jv_UnregisterClass): Don't fall
1081         off the end of a pointer list.
1082
1083         * java/lang/natThread.cc (stop): Don't abort, throw an exception
1084         instead.
1085         (suspend): Ditto.
1086         
1087 2000-02-09  Tom Tromey  <tromey@cygnus.com>
1088
1089         * java/lang/natRuntime.cc (_load): Call add_library.
1090         (loadLibraryInternal): Likewise.
1091
1092         * gnu/gcj/convert/natIconv.cc (Input_iconv::finalize): Call
1093         iconv_close when handle is not NULL.  Thanks to Andrew Haley.
1094         (Output_iconv::finalize): Likewise.
1095
1096 2000-02-08  Tom Tromey  <tromey@cygnus.com>
1097
1098         * java/util/Properties.java (setProperty): New method.
1099         (store): New method.
1100
1101 2000-02-07  Tom Tromey  <tromey@cygnus.com>
1102
1103         * java/lang/Runtime.java (_load): Declare.
1104         (load, loadLibrary): Wrote in terms of _load.
1105         * java/lang/natRuntime.cc (load): Call JNI_OnLoad if it appears in
1106         library.
1107         (loadLibrary): Likewise.
1108         Include <jni.h>.
1109         (_load): New method.
1110         (loadLibrary, load): Removed.
1111
1112         * jni.cc (ThrowableClass): New define.
1113         (_Jv_JNI_Throw): Check argument.
1114         (_Jv_JNI_ThrowNew): Likewise.
1115         (wrap_value): Don't wrap object if it is NULL.
1116         (_Jv_JNI_DefineClass): Use wrap_value.
1117         (_Jv_JNI_FindClass): Likewise.
1118         (_Jv_JNI_GetSuperclass): Likewise.
1119         (_Jv_JNI_ExceptionOccurred): Likewise.
1120         (_Jv_JNI_AllocObject): Likewise.
1121         (_Jv_JNI_GetObjectClass): Likewise.
1122         (_Jv_JNI_NewString): Likewise.
1123         (_Jv_JNI_NewStringUTF): Likewise.
1124         (_Jv_JNI_NewObjectArray): Likewise.
1125         (_Jv_JNI_GetObjectArrayElement): Likewise.
1126         (_Jv_JNI_NewPrimitiveArray): Likewise.
1127         (_Jv_JNI_ToReflectedField): Likewise.
1128         (_Jv_JNI_ToReflectedMethod): Likewise.
1129         (_Jv_JNI_AllocObject): Check argument.
1130         (_Jv_JNI_NewObjectV): Likewise.
1131         (_Jv_JNI_NewObject): Likewise.
1132         (_Jv_JNI_NewObjectA): Likewise.
1133         (_Jv_JNI_GetObjectClass): Likewise.
1134         (_Jv_JNI_GetField): Likewise.
1135         (_Jv_JNI_SetField): Likewise.
1136
1137         * interpret.cc (PUSHL): Don't use expression statement.
1138         (PUSHD): Likewise.
1139         (LOADL): Likewise.
1140         (STOREL): Likewise.
1141
1142         * jni.cc (add_char): Conditional on INTERPRETER.
1143         (mangled_name): Likewise.
1144         (call): Likewise.
1145         * include/java-interp.h (class _Jv_MethodBase): Conditional on
1146         INTERPRETER.
1147         (class _Jv_JNIMethod): Likewise.
1148
1149 2000-02-04  Warren Levy  <warrenl@cygnus.com>
1150
1151         * Makefile.am: Added MPN.java and BigInteger.java.
1152         * Makefile.in: Rebuilt.
1153         * gnu/gcj/math/MPN.java: New file.  From Kawa by Per Bothner
1154         <per@bothner.com>.
1155         * java/math/BigInteger.java: New file.  Based primarily on
1156         Kawa's IntNum.java by Per Bothner <per@bothner.com>.
1157
1158 2000-02-04  Tom Tromey  <tromey@cygnus.com>
1159
1160         * defineclass.cc (handleMethodsBegin): Allocate _Jv_MethodBase
1161         pointers.
1162         (handleMethodsEnd): Fixed error messages.  Create a _Jv_JNIMethod
1163         if the method is native.
1164         * resolve.cc (ncode): Don't handle native methods.
1165         (_Jv_JNIMethod::ncode): New method.
1166         (_Jv_PrepareClass): Handle native methods.
1167         * jni.cc (call): Renamed from _Jv_JNI_conversion_call.
1168         Include AbstractMethodError.h.
1169         (add_char): New function.
1170         (mangled_name): Likewise.
1171         * include/java-interp.h (class _Jv_JNIMethod): New class.
1172         (class _Jv_MethodBase): New class.
1173         (class _Jv_InterpMethod): Derive from _Jv_MethodBase.
1174         (_Jv_InterpClass): Changed `interpreted_methods' field to type
1175         `_Jv_MethodBase'.
1176
1177         * include/jvm.h (_Jv_FindSymbolInExecutable): Declare.
1178         * java/lang/natRuntime.cc (libraries_size, libraries_count,
1179         libraries): New globals.
1180         (add_library): New function.
1181         (_Jv_FindSymbolInExecutable): New function.
1182
1183         * java/lang/natClassLoader.cc (initiated_classes, loaded_classes):
1184         Now static.
1185
1186 2000-02-04  Andrew Haley  <aph@cygnus.com>
1187
1188         * java/lang/Throwable.java (CPlusPlusDemangler): New class.
1189         (printStackTrace): Use a CPlusPlusDemangler to demangle names.
1190         * java/lang/natThrowable.cc (printRawStackTrace): Rename
1191         printStackTrace to printRawStackTrace.
1192
1193 2000-02-03  Tom Tromey  <tromey@cygnus.com>
1194
1195         * java/util/Calendar.java (toString): New method.
1196         * java/util/SimpleTimeZone.java (clone): New method.
1197         (toString): New method.
1198         * java/util/TimeZone.java (clone): New method.
1199         * java/text/SimpleDateFormat.java (clone): New method.
1200         * java/text/NumberFormat.java (clone): New method.
1201         (equals): New method.
1202         * java/text/Format.java (clone): New method.
1203         * java/text/DateFormatSymbols.java (DateFormatSymbols): New
1204         constructor.
1205         (clone): New method.
1206         * java/text/DateFormat.java (clone): New method.
1207         * java/text/Collator.java (clone): New method.
1208
1209 2000-02-03  Tom Tromey  <tromey@cygnus.com>
1210
1211         * java/io/PipedOutputStream.java (write(byte[], int, int)): New
1212         method.
1213
1214 2000-02-01  Tom Tromey  <tromey@cygnus.com>
1215
1216         * include/java-interp.h (_Jv_JNI_conversion_call): Declare.
1217         * resolve.cc (ncode): Use _Jv_JNI_conversion_call when
1218         constructing the closure if the function is native.
1219         * jni.cc (_Jv_JNI_conversion_call): Now returns `void'.  No longer
1220         a template function, #if'd out, or static.
1221         Include <java-interp.h>.
1222
1223         * include/jni.h (class _Jv_JNIEnv): Corrected calls using `...'.
1224
1225         * include/jni.h (class _Jv_JNIEnv): Added all C++ inline methods.
1226
1227         * jni.cc (_Jv_JNI_PopLocalFrame): Leave loop when `n == NULL'.
1228         (_Jv_JNI_conversion_call): _Jv_JNI_PopLocalFrame will never leave
1229         `locals == NULL'.
1230         (wrap_value): New function.
1231         (_Jv_JNI_CallAnyMethodV): Use it.
1232         (_Jv_JNI_CallAnyMethodA): Likewise.
1233         (_Jv_JNI_GetField): Use wrap_value; removed specialized version.
1234         (_Jv_JNI_GetStaticField): Likewise.
1235
1236         * jni.cc (_Jv_JNI_GetField): Specialize for jobject.
1237         (_Jv_JNI_GetStaticField): Likewise.
1238
1239 2000-01-31  Tom Tromey  <tromey@cygnus.com>
1240
1241         * prims.cc (_Jv_MallocUnchecked): New function.
1242         (main_init): Call _Jv_JNI_Init.
1243         * include/jvm.h (_Jv_MallocUnchecked): Declare.
1244         (_Jv_JNI_Init): Declare.
1245         * jni.cc: Include Hashtable.h, OutOfMemoryError.h, Integer.h,
1246         <string.h>.
1247         (_Jv_JNI_NewGlobalRef): New function.
1248         (_Jv_JNI_DeleteGlobalRef): New function.
1249         (_Jv_JNI_DeleteLocalRef): New function.
1250         (_Jv_JNI_conversion_call): Initialize and clear local reference
1251         frame.
1252         (_Jv_JNI_NewLocalRef): New function.
1253         (struct _Jv_JNI_LocalFrame): New structure.
1254         (_Jv_JNI_PushLocalFrame): New function.
1255         (_Jv_JNI_EnsureLocalCapacity): New function.
1256         (FRAME_SIZE): New define.
1257         (_Jv_JNI_GetStringChars): Mark string, not characters.
1258         (_Jv_JNI_ReleaseStringChars): Unmark string, not characters.
1259         (_Jv_JNI_GetPrimitiveArrayElements): Mark array, not elements.
1260         (_Jv_JNI_ReleasePrimitiveArrayElements): Unmark array, not
1261         elements.
1262         (_Jv_JNI_DefineClass): Make return value a local ref.
1263         (_Jv_JNI_FindClass): Likewise.
1264         (_Jv_JNI_GetSuperclass): Likewise.
1265         (_Jv_JNI_ExceptionOccurred): Likewise.
1266         (_Jv_JNI_AllocObject): Likewise.
1267         (_Jv_JNI_GetObjectClass): Likewise.
1268         (_Jv_JNI_CallAnyMethodV): Likewise.
1269         (_Jv_JNI_NewString): Likewise.
1270         (_Jv_JNI_NewStringUTF): Likewise.
1271         (_Jv_JNI_NewObjectArray): Likewise.
1272         (_Jv_JNI_GetObjectArrayElement): Likewise.
1273         (_Jv_JNI_ToReflectedField): Likewise.
1274         (_Jv_JNI_ToReflectedMethod): Likewise.
1275         (_Jv_JNIFunctions): Updated table for new functions.
1276         (_Jv_JNI_Init): New function.
1277         (mark_for_gc): Wrote.
1278         (unmark_for_gc): Wrote.
1279         * include/jni.h (struct JNINativeInterface): Removed name from
1280         PopLocalFrame parameter.
1281         (class _Jv_JNIEnv): Added `locals' field.
1282
1283 Mon Jan 31 00:43:15 2000  Anthony Green  <green@redhat.com>
1284
1285         * gnu/gcj/convert/natIconv.cc (read): Minor fixes.
1286         (write): Ditto.
1287
1288 2000-01-30  Tom Tromey  <tromey@cygnus.com>
1289
1290         * include/config.h.in: Rebuilt.
1291         * acconfig.h (HAVE_ICONV): Define.
1292         * configure: Rebuilt.
1293         * configure.in: Check for `iconv' function.
1294         * gnu/gcj/convert/BytesToUnicode.java (getDecoder): Try iconv if
1295         no specific encoder exists.
1296         * gnu/gcj/convert/UnicodeToBytes.java (getEncoder): Try iconv if
1297         no specific encoder exists.
1298         * Makefile.in: Rebuilt.
1299         * Makefile.am (convert_source_files): Mention Input_iconv.java and
1300         Output_iconv.java.
1301         (nat_source_files): Added natIconv.cc.
1302         * gnu/gcj/convert/natIconv.cc: New file.
1303         * gnu/gcj/convert/Input_iconv.java: New file.
1304         * gnu/gcj/convert/Output_iconv.java: New file.
1305
1306 2000-01-28  Tom Tromey  <tromey@cygnus.com>
1307
1308         * Makefile.in: Rebuilt.
1309         * Makefile.am (LIBFFIINCS): Added MULTIBUILDTOP.
1310
1311 2000-01-26  Tom Tromey  <tromey@cygnus.com>
1312
1313         * gcj/method.h (JvNumMethods): Moved from Class.h.
1314         (JvGetFirstMethod): Likewise.
1315         * java/lang/Class.h (Object): Updated decl of
1316         _Jv_JNI_ToReflectedField.
1317         (Object): Added _Jv_JNI_ToReflectedMethod as a friend.
1318         * Makefile.in: Rebuilt.
1319         * Makefile.am (java/lang/reflect/Field.h): Added `jboolean'
1320         argument of _Jv_JNI_ToReflectedField.
1321         (java/lang/reflect/Constructor.h): Added _Jv_JNI_ToReflectedMethod
1322         as a friend.
1323         (java/lang/reflect/Method.h): Likewise.
1324         * include/jni.h (class _Jv_JNIEnv): Added `klass' member.  Use
1325         __GCJ_JNI_IMPL__.
1326         (jweak): New typedef.
1327         (struct JNINativeInterface): Correctly declare remaining entries.
1328         * jni.cc: Include Class.h, ClassLoader.h.
1329         (_Jv_JNI_FindClass): New function.
1330         (_Jv_JNI_DefineClass): New function.
1331         (_Jv_JNI_conversion_call): New function.
1332         (_Jv_JNI_FindClass): Use current class loader to find class.
1333         (_Jv_JNI_ExceptionCheck): New function.
1334         (_Jv_JNI_FromReflectedField): Now static.
1335         (MethodClass): New define.
1336         (_Jv_JNI_FromReflectedMethod): New function.
1337         (_Jv_JNI_ToReflectedMethod): Likewise.
1338         Include Method.h.
1339         (_Jv_JNI_IsAssignableFrom): Renamed.
1340         (_Jv_JNI_GetStringRegion): New function.
1341         Include StringIndexOutOfBoundsException.h.
1342         (_Jv_JNI_GetStringUTFRegion): New function.
1343         (_Jv_JNIFunctions): Updated for new functions.
1344         (_Jv_JNI_GetPrimitiveArrayCritical): New function
1345         (_Jv_JNI_ReleasePrimitiveArrayCritical): Likewise.
1346         (_Jv_JNI_GetStringCritical): New function.
1347         (_Jv_JNI_ReleaseStringCritical): Likewise.
1348         (get_throwable): Removed.
1349         (GCJ_JV_JNIENV_FRIEND): Removed.
1350         (__GCJ_JNI_IMPL__): Define.
1351         Include method.h.
1352
1353         * resolve.cc (get_ffi_type_from_signature): Handle case where
1354         boolean is an int.
1355
1356 Tue Jan 25 08:51:16 2000  Tom Tromey  <tromey@ferrule.cygnus.com>
1357
1358         * interpret.cc (run): Don't call println.
1359         Don't include PrintStream.h.
1360
1361         * gcj/field.h (struct _Jv_Field): Use "jshort" as type for
1362         nameIndex.  Use "jint" as type for boffset.
1363         * java/lang/Class.h (struct _Jv_Method): Made accflags a
1364         _Jv_ushort.
1365         (Class): Likewise.  Also changed type of method_count,
1366         vtable_method_count, size_in_bytes, field_count,
1367         static_field_count, interface_count.
1368         * gcj/array.h (__JArray): Made `length' a const jsize, not an
1369         int.
1370
1371 2000-01-21  Tom Tromey  <tromey@cygnus.com>
1372
1373         * java/lang/reflect/natConstructor.cc (newInstance): Use
1374         _Jv_CallAnyMethodA.
1375         * include/jvm.h: Declare _Jv_CallAnyMethodA.
1376         * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Renamed
1377         from _Jv_CallNonvirtualMethodA.  Changed interface; overloaded.
1378         Include <jni.h>.
1379         (COPY): Removed.
1380         (invoke): Use _Jv_CallAnyMethodA.
1381         (VAL): Redefined.
1382         * java/lang/Class.h (Class): Declare JvGetFirstStaticField,
1383         JvNumStaticFields, JvNumMethods, and JvGetFirstMethod as friend
1384         functions.
1385         (struct _Jv_Method): Added getNextMethod method.
1386         (JvNumMethods): New function.
1387         (JvGetFirstMethod): Likewise.
1388         * gcj/field.h (JvGetFirstStaticField): New function.
1389         (JvNumStaticFields): Likewise.
1390         (getNextField): Renamed from getNextInstanceField.
1391         (struct _Jv_Field): New method getClass.
1392         * jni.cc: Wrote many new functions.
1393         * include/jni.h (JNI_TRUE): Define.
1394         (JNI_FALSE): Likewise.
1395         (jobject, jclass, jstring, jarray, jthrowable, jobjectArray,
1396         jbyteArray, jshortArray, jintArray, jlongArray, jbooleanArray,
1397         jcharArray, jfloatArray, jdoubleArray): New typedefs.
1398         (jfieldID, jmethodID): Likewise.
1399         (JNI_COMMIT, JNI_ABORT): New defines.
1400         (JNINativeMethod): New struct.
1401         (struct JNINativeInterface): Correctly declared more entries.
1402         (class _Jv_JNIEnv): Added `ex' member.
1403         (JNI_VERSION_1_1): New define.
1404         (JNI_VERSION_1_2): Likewise.
1405
1406         * boehm.cc (_Jv_MarkObj): Use getNextField, not
1407         getNextInstanceField.
1408
1409 2000-01-20  Tom Tromey  <tromey@cygnus.com>
1410
1411         * resolve.cc (StringClass): Removed.
1412         * defineclass.cc (StringClass): Removed.
1413
1414 2000-01-19  Bryce McKinlay  <bryce@albatross.co.nz>
1415
1416         * NEWS: updated.
1417
1418 2000-01-19  Tom Tromey  <tromey@cygnus.com>
1419
1420         * interpret.cc (PC_REGISTER_ASM): Removed.
1421
1422         * java/lang/natThrowable.cc: Don't use `#pragma implementation'.
1423         From Bryce McKinlay.
1424
1425         * All files: Updated copyright to reflect Cygnus purchase.
1426
1427 2000-01-18  Bryce McKinlay <bryce@albatross.co.nz>
1428
1429         * configure: Rebuilt.
1430         * configure.in: Recognize --disable-interpreter.
1431
1432 2000-01-18  Andrew Haley  <aph@cygnus.com>
1433
1434         * name-finder.cc (lookup): Check for dladdr function.
1435         acconfig.h (HAVE_DLADDR): Add.
1436         configure.in: Check for HAVE_DLADDR
1437         configure: Rebuilt.
1438         include/config.h.in:  Rebuilt.
1439
1440 2000-01-17  Andrew Haley  <aph@cygnus.com>
1441
1442         * prims.cc (_Jv_RunMain): Set the name of this executable.
1443
1444 2000-01-17  Tom Tromey  <tromey@cygnus.com>
1445
1446         * java/lang/natThrowable.cc (fillInStackTrace): Return `this' even
1447         when backtrace can't be computed.
1448
1449         * configure: Rebuilt.
1450         * configure.in: Fixed typo in AC_CONFIG_SUBDIRS call.
1451
1452         * java/lang/Runtime.java (loadLibraryInternal): Declare.
1453         * java/lang/natClassLoader.cc (_Jv_FindClass): Removed dead copy.
1454         (_Jv_FindClassInCache): Likewise.
1455         (_Jv_FindClass): Don't conditionalize body on INTERPRETER.
1456         (findSystemClass): Try to load class from compiled module.
1457         Include Runtime.h.
1458         * java/lang/natRuntime.cc (load): Use UTF-8 copy of filename.
1459         (loadLibrary): Likewise.
1460         (lt_preloaded_symbols): Define.
1461         (loadLibraryInternal): New method.
1462         * include/config.h.in: Rebuilt.
1463         * acconfig.h (USE_LTDL): Added.
1464         * Makefile.am (SUBDIRS): Added $(DIRLTDL).
1465         (INCLUDES): Added $(INCLTDL).
1466         (libgcj_la_DEPENDENCIES): Added $(LIBLTDL).
1467         (libgcj_la_LIBADD): Likewise.
1468         * aclocal.m4, configure: Rebuilt.
1469         * configure.in: Added libltdl support.
1470
1471 2000-01-15  Tom Tromey  <tromey@cygnus.com>
1472
1473         * prims.cc (_Jv_PrimClass): Use `JV_STATE_NOTHING', not `0'.
1474
1475 2000-01-14  Andrew Haley  <aph@cygnus.com>
1476
1477         * java/lang/natThrowable.cc: New file.
1478
1479         * java/lang/Throwable.java (fillInStackTrace): Make native.
1480         (printStackTrace): Call native method to do this.
1481         (Throwable): Call fillInStackTrace.
1482         (stackTrace): New variable.
1483         
1484         * include/jvm.h: Add _Jv_ThisExecutable functions.
1485         
1486         * prims.cc: (_Jv_execName): New variable.
1487         (catch_segv): Call fillInStackTrace.
1488         (catch_fpe): Ditto.
1489         (_Jv_ThisExecutable): New functions.
1490         (JvRunMain): Set the name of this executable.
1491
1492         * Makefile.am: Add java/lang/natThrowable.cc.
1493         Add name-finder.cc.
1494         * Makefile.in: Rebuilt.
1495
1496         * acconfig.h: Add HAVE_PROC_SELF_EXE.
1497
1498         * configure.in: Force link with __frame_state_for in
1499         FORCELIBGCCSPEC.  Add new checks for backtrace.
1500         * include/config.h.in: Rebuilt.
1501
1502         * name-finder.cc: New file.
1503         * include/name-finder.h: New file.
1504
1505 2000-01-16  Anthony Green  <green@cygnus.com>
1506
1507         * java/lang/StringBuffer.java (StringBuffer): Don't special case
1508         null argument.
1509
1510 2000-01-16  Jeff Sturm  <jsturm@sigma6.com>
1511
1512         * java/io/StreamTokenizer.java (nextToken): Avoid unread(TT_EOF).
1513
1514 2000-01-13  Tom Tromey  <tromey@cygnus.com>
1515
1516         * java/lang/natClassLoader.cc (_Jv_FindClass): Register `loader',
1517         not system loader, as initiating loader.
1518
1519 2000-01-11  Tom Tromey  <tromey@cygnus.com>
1520
1521         * java/lang/natSystem.cc (getpwuid_adaptor): New adaptor for
1522         HP/UX.  From David Scott Urban.
1523
1524 2000-01-10  Jeff Sturm  <jsturm@sigma6.com>
1525
1526         * java/lang/natMath.cc (pow): Cast args to `double', not
1527         `jdouble'.
1528         (atan2): Likewise.
1529         (IEEEremainder): Likewise.
1530         * java/lang/mprec.h: Don't wrap includes in `extern "C"'.
1531         * java/lang/fdlibm.h: Don't wrap includes in `extern "C"'.
1532
1533 2000-01-09  Anthony Green  <green@cygnus.com>
1534
1535         * java/lang/natString.cc (init): Test for overflow condition
1536         during out of bounds check.
1537         (getChars): Throw StringIndexOutOfBoundsException, not
1538         ArrayIndexOutOfBoundsException.
1539         (getBytes): Ditto.
1540         (regionMatches): Obey case option during string comparison.
1541
1542         * configure.host (ligcj_interpreter): New variable.  Enable
1543         interpreter by default on IA-32.
1544         * configure.in:  Examine libgcj_interpreter.
1545         * configure: Rebuilt.
1546
1547 2000-01-07  Tom Tromey  <tromey@cygnus.com>
1548
1549         * mauve-libgcj: Don't disable ClassTest.
1550
1551         * java/lang/natClass.cc (getClasses): Wrote.
1552
1553 2000-01-06  Tom Tromey  <tromey@cygnus.com>
1554
1555         * java/lang/natClass.cc (_getConstructors): Correctly check
1556         whether method name is the init name.
1557         (getMethod): Look at accflags on method in `klass', not `this'.
1558
1559 2000-01-05  Tom Tromey  <tromey@cygnus.com>
1560
1561         * java/lang/natClass.cc (getMethod): Compute offset relative to
1562         `klass's methods table, not `this's table.
1563
1564         * java/lang/reflect/natMethod.cc (_Jv_CallNonvirtualMethodA):
1565         In unwrapping/widening case, check whether `k' is null, not
1566         whether it is primitive.  Initialize `num' from `argelts', not
1567         `paramelts'.  Correct create and pass arguments to ffi_call.
1568         Don't let presence of `this' argument affect index used to look in
1569         argument arrays.
1570         (COPY): Set appropriate element in `values' vector.
1571
1572         * java/lang/natClass.cc: Include <gcj/method.h>.
1573
1574         * java/lang/Class.h (_getMethods): Correctly declare as private,
1575         not public.
1576
1577         * java/lang/Class.h (_getMethods): Declare.
1578         * java/lang/Class.java (_getMethods): Declare.
1579         * java/lang/natClass.cc (getDeclaringClass): Always return NULL.
1580         (getDeclaredClasses): Always return empty array.
1581         (_getMethods): New method.
1582         (getMethods): Wrote.
1583         (getDeclaredMethod): Return `rmethod'.
1584         (finit_name): New global.
1585         (getDeclaredMethods): Check for finit_name.
1586         (_getMethods): Likewise.
1587         (getMethod): Only return public methods.
1588
1589         * java/lang/reflect/natMethod.cc (get_ffi_type): Test size of
1590         jboolean and select correct ffi type on that basis.
1591         (_Jv_CallNonvirtualMethodA): Handle `void' return type.
1592         Constructor call always has `void' return type.
1593
1594 2000-01-04  Tom Tromey  <tromey@cygnus.com>
1595
1596         * java/lang/Class.h (getSignature): Updated.
1597         * java/lang/Class.java (getSignature): Updated.
1598         * java/lang/natClass.cc (getSignature): Added `is_constructor'
1599         argument.
1600         (getConstructor): Ensure constructor is public.
1601         (_getConstructors): Check for public-ness of constructor when
1602         `declared' is false, not when it is true.
1603
1604 2000-01-04  Warren Levy  <warrenl@cygnus.com>
1605
1606         * java/net/natPlainDatagramSocketImpl.cc (peek): Removed unnecesary
1607         comment.
1608         (receive): Set the sender's address in the DatagramPacket.
1609
1610 2000-01-04  Tom Tromey  <tromey@cygnus.com>
1611
1612         * java/lang/reflect/natConstructor.cc (newInstance): Pass
1613         declaring class as return_type argument to
1614         _Jv_CallNonvirtualMethodA.
1615         * java/lang/reflect/natMethod.cc (_Jv_CallNonvirtualMethodA): In
1616         constructor case, create object and use it as `this' argument.
1617         * java/lang/Class.h (_getConstructors): Declare.
1618         (_getFields): Declare.
1619         * java/lang/Class.java (getConstructors): Wrote.
1620         (_getConstructors): New native method.
1621         (getDeclaredConstructors): Wrote.
1622         (_getFields): Declare new native method.
1623         * java/lang/natClass.cc (_Jv_LookupInterfaceMethod): Removed
1624         incorrect comment.
1625         (getMethod): Work correctly when class is primitive.
1626         (getDeclaredMethods): Likewise.  Compute offset using `method',
1627         not `mptr'.
1628         (getDeclaredMethod): Likewise.
1629         (getConstructor): Wrote.
1630         (ConstructorClass): New define.
1631         (getDeclaredConstructor): Wrote.
1632         (_getConstructors): New method.
1633         (_getFields): New method.
1634         (getFields): Wrote.
1635
1636         * Makefile.in: Rebuilt.
1637         * Makefile.am (AM_CXXFLAGS): Added -D_GNU_SOURCE.
1638
1639         * prims.cc: Remove `#pragma implementation'.
1640         * gcj/array.h: Remove `#pragma interface'.
1641
1642         * prims.cc (_Jv_equaln): New function.
1643         * java/lang/Class.java (getSignature): Declare.
1644         * resolve.cc (_Jv_LookupDeclaredMethod): Moved to natClass.cc.
1645         * java/lang/natClass.cc (_Jv_LookupDeclaredMethod): Moved from
1646         resolve.cc.
1647         (getSignature): New method.
1648         (getDeclaredMethod): Wrote.
1649         (getMethod): Wrote.
1650         Include StringBuffer.h.
1651         * java/lang/Class.h (Class): Added _Jv_FromReflectedConstructor
1652         as a friend.  Unconditionally declare _Jv_LookupDeclaredMethod as
1653         a friend.
1654         (getSignature): Declare.
1655         * include/jvm.h (_Jv_GetTypesFromSignature): Declare.
1656         (_Jv_equaln): Declare.
1657         (_Jv_CallNonvirtualMethodA): Declare.
1658         * Makefile.in: Rebuilt.
1659         * Makefile.am (nat_source_files): Added natConstructor.cc.
1660         (java/lang/reflect/Constructor.h): New target.
1661         * java/lang/reflect/natConstructor.cc: New file.
1662         * java/lang/reflect/Constructor.java (newInstance): Now native.
1663         (declaringClass): Renamed from decl_class.
1664         (offset): Renamed from index.
1665         (getType): New native method.
1666         (getModifiers): Now native.
1667         (getParameterTypes): Call getType if required.
1668         (hashCode): Include hash code from declaring class.
1669         (modifiers): Removed.
1670         (toString): Call getType if required.
1671         * gcj/method.h (_Jv_FromReflectedConstructor): New function.
1672         * java/lang/reflect/natMethod.cc (hack_call): New method.
1673         Removed `#if 0' around FFI code.
1674         Include <gnu/gcj/RawData.h>.
1675         (invoke): Use _Jv_CallNonvirtualMethodA.  Throw
1676         IllegalArgumentException when argument object and class disagree.
1677         (_Jv_GetTypesFromSignature): New function.
1678         (getType): Use it.
1679         (ObjectClass): New define.
1680         (_Jv_CallNonvirtualMethodA): New function.
1681         * java/lang/reflect/Method.java (hack_trampoline): New method.
1682         (hack_call): New native method.