Commit Graph

219 Commits

Author SHA1 Message Date
Tom Tromey
d6ab24c514 * java/lang/natClass.cc: Include <gcj/method.h>.
From-SVN: r31249
2000-01-05 22:52:54 +00:00
Tom Tromey
1258cadadc Class.h (_getMethods): Correctly declare as private, not public.
* java/lang/Class.h (_getMethods): Correctly declare as private,
	not public.

From-SVN: r31246
2000-01-05 22:29:27 +00:00
Tom Tromey
6f2b93eb2f Class.h (_getMethods): Declare.
* java/lang/Class.h (_getMethods): Declare.
	* java/lang/Class.java (_getMethods): Declare.
	* java/lang/natClass.cc (getDeclaringClass): Always return NULL.
	(getDeclaredClasses): Always return empty array.
	(_getMethods): New method.
	(getMethods): Wrote.
	(getDeclaredMethod): Return `rmethod'.
	(finit_name): New global.
	(getDeclaredMethods): Check for finit_name.
	(_getMethods): Likewise.
	(getMethod): Only return public methods.

From-SVN: r31245
2000-01-05 22:22:10 +00:00
Tom Tromey
5dab1948f6 natMethod.cc (get_ffi_type): Test size of jboolean and select correct ffi type on that basis.
* java/lang/reflect/natMethod.cc (get_ffi_type): Test size of
	jboolean and select correct ffi type on that basis.
	(_Jv_CallNonvirtualMethodA): Handle `void' return type.
	Constructor call always has `void' return type.

From-SVN: r31242
2000-01-05 17:23:34 +00:00
Tom Tromey
95c6cc0ab5 Class.h (getSignature): Updated.
* java/lang/Class.h (getSignature): Updated.
	* java/lang/Class.java (getSignature): Updated.
	* java/lang/natClass.cc (getSignature): Added `is_constructor'
	argument.
	(getConstructor): Ensure constructor is public.
	(_getConstructors): Check for public-ness of constructor when
	`declared' is false, not when it is true.

From-SVN: r31241
2000-01-05 16:35:20 +00:00
Warren Levy
730ecdd3c3 natPlainDatagramSocketImpl.cc (peek): Removed unnecesary comment.
* java/net/natPlainDatagramSocketImpl.cc (peek): Removed unnecesary
	comment.
	(receive): Set the sender's address in the DatagramPacket.

From-SVN: r31218
2000-01-04 22:41:58 +00:00
Tom Tromey
0f918fea8b [multiple changes]
2000-01-04  Tom Tromey  <tromey@cygnus.com>

	* java/lang/reflect/natConstructor.cc (newInstance): Pass
	declaring class as return_type argument to
	_Jv_CallNonvirtualMethodA.
	* java/lang/reflect/natMethod.cc (_Jv_CallNonvirtualMethodA): In
	constructor case, create object and use it as `this' argument.
	* java/lang/Class.h (_getConstructors): Declare.
	(_getFields): Declare.
	* java/lang/Class.java (getConstructors): Wrote.
	(_getConstructors): New native method.
	(getDeclaredConstructors): Wrote.
	(_getFields): Declare new native method.
	* java/lang/natClass.cc (_Jv_LookupInterfaceMethod): Removed
	incorrect comment.
	(getMethod): Work correctly when class is primitive.
	(getDeclaredMethods): Likewise.  Compute offset using `method',
	not `mptr'.
	(getDeclaredMethod): Likewise.
	(getConstructor): Wrote.
	(ConstructorClass): New define.
	(getDeclaredConstructor): Wrote.
	(_getConstructors): New method.
	(_getFields): New method.
	(getFields): Wrote.

	* Makefile.in: Rebuilt.
	* Makefile.am (AM_CXXFLAGS): Added -D_GNU_SOURCE.

	* prims.cc: Remove `#pragma implementation'.
	* gcj/array.h: Remove `#pragma interface'.

	* prims.cc (_Jv_equaln): New function.
	* java/lang/Class.java (getSignature): Declare.
	* resolve.cc (_Jv_LookupDeclaredMethod): Moved to natClass.cc.
	* java/lang/natClass.cc (_Jv_LookupDeclaredMethod): Moved from
	resolve.cc.
	(getSignature): New method.
	(getDeclaredMethod): Wrote.
	(getMethod): Wrote.
	Include StringBuffer.h.
	* java/lang/Class.h (Class): Added _Jv_FromReflectedConstructor
	as a friend.  Unconditionally declare _Jv_LookupDeclaredMethod as
	a friend.
	(getSignature): Declare.
	* include/jvm.h (_Jv_GetTypesFromSignature): Declare.
	(_Jv_equaln): Declare.
	(_Jv_CallNonvirtualMethodA): Declare.
	* Makefile.in: Rebuilt.
	* Makefile.am (nat_source_files): Added natConstructor.cc.
	(java/lang/reflect/Constructor.h): New target.
	* java/lang/reflect/natConstructor.cc: New file.
	* java/lang/reflect/Constructor.java (newInstance): Now native.
	(declaringClass): Renamed from decl_class.
	(offset): Renamed from index.
	(getType): New native method.
	(getModifiers): Now native.
	(getParameterTypes): Call getType if required.
	(hashCode): Include hash code from declaring class.
	(modifiers): Removed.
	(toString): Call getType if required.
	* gcj/method.h (_Jv_FromReflectedConstructor): New function.
	* java/lang/reflect/natMethod.cc (hack_call): New method.
	Removed `#if 0' around FFI code.
	Include <gnu/gcj/RawData.h>.
	(invoke): Use _Jv_CallNonvirtualMethodA.  Throw
	IllegalArgumentException when argument object and class disagree.
	(_Jv_GetTypesFromSignature): New function.
	(getType): Use it.
	(ObjectClass): New define.
	(_Jv_CallNonvirtualMethodA): New function.
	* java/lang/reflect/Method.java (hack_trampoline): New method.
	(hack_call): New native method.

1999-12-21  Per Bothner  <per@bothner.com>

	* java/lang/natClass.cc (getDeclaredMethods): Correctly compute
	offset in new Method.

From-SVN: r31199
2000-01-04 08:46:52 +00:00
Bryce McKinlay
43cbc9430d natObject.cc (notify): Throw message with IllegalMonitorStateException.
1999-12-22  Bryce McKinlay  <bryce@albatross.co.nz>

        * java/lang/natObject.cc (notify): Throw message with
        IllegalMonitorStateException.
        (notifyAll): Ditto.
        (wait): Ditto.
        * java/lang/Thread.java (isInterrupted): Don't clear interrupt_flag.
        (isInterrupted_): New function, which does clear interrupt_flag.
        (interrupt): Use `isInterrupted_'.
        * java/lang/natThread.cc (interrupt): Add comment.
        (join): Set `Prev' in joiner loop.
        Change various calls to `isInterrupted' to use `isInterrupted_'.
        * posix-threads.cc (_Jv_CondWait): Allways use pthread_cond_timedwait
        on linux. Set result to 0 on an interrupt. Test interrupted status
        of java Thread object directly.
        FLAG_INTERRUPTED: removed.
        (_Jv_ThreadStart): Throw OutOfMemoryError if pthread_create fails.
        (_Jv_ThreadInterrupt): Don't set FLAG_INTERRUPTED.
        (_Jv_InitThreads): Don't block SIGINT.
        (_Jv_ThreadWait): Don't configure SIGINT handler.

From-SVN: r31082
1999-12-24 01:00:46 +00:00
Tom Tromey
f9f1f4a651 * mauve-libgcj: Added java.lang.reflect.Modifier.toString12.
From-SVN: r31061
1999-12-21 23:50:01 +00:00
Tom Tromey
bcc7684092 Modifier.java (STRICT): New constant.
* java/lang/reflect/Modifier.java (STRICT): New constant.
	(isStrict): New method.
	(toString): Added `strict'.

From-SVN: r31040
1999-12-20 23:05:21 +00:00
Anthony Green
d352598f80 Alpha Linux changes.
From-SVN: r31030
1999-12-20 05:55:34 +00:00
Anthony Green
7013e7cda9 libgcjdata.c: New file.
1999-12-19  Anthony Green  <green@cygnus.com>

        * libgcjdata.c: New file.
        * libgcj.spec.in: Use @LIBDATASTARTSPEC@ in startfile.
        * configure: Rebuilt.
        * configure.in (LIBDATASTARTSPEC): Force data with a known name
        into the program.
        * Makefile.in: Rebuilt.
        * Makefile.am: Build libgcjdata.a.

        * libgcj.spec.in: Use @FORCELIBGCCSPEC@ in startfile.
        * configure: Rebuilt.
        * configure.in (FORCELIBGCCSPEC): Force important parts of libgcc
        into every program.

From-SVN: r31027
1999-12-20 02:18:11 +00:00
Tom Tromey
ccfe7d0a0d re GNATS libgcj/111 (bug in reflection code)
* java/lang/reflect/Method.java (toString): Call getType if
	required.  Partial fix for PR libgcj/111.  From Per Bothner.

From-SVN: r31002
1999-12-18 00:44:00 +00:00
Tom Tromey
ce63fdce90 * java/lang/natPosixProcess.cc (startProcess): Don't use sprintf.
From-SVN: r30996
1999-12-17 16:06:17 +00:00
Bryce McKinlay
5ac99d9adc Boolean.java (Boolean(String)): Set Value' to false on a null String constructor parameter.
1999-12-16  Bryce McKinlay  <bryce@albatross.co.nz>

        * java/lang/Boolean.java (Boolean(String)): Set Value' to false on a
        null String constructor parameter.
        * java/net/natPlainSocketImpl.cc: Remove unneccessary sprintf calls
        for exception messages.
        BooleanClass: declare.
        (setOption): Use BooleanClass instead of Class.forName() for
        instanceof test.
        (bind): Cast 4th parameter of setsockopt to char *' for
        compatibility with older Solaris headers.
        * java/net/natPlainDatagramSocketImpl.cc: Remove unneccessary
        sprintf calls for exception messages.
        BooleanClass, IntegerClass: declare.
        (setOption): Use BooleanClass and IntegerClass, not Class.forName()
        for instanceof test.

From-SVN: r30988
1999-12-17 05:11:28 +00:00
Tom Tromey
6150df627a natSystem.cc (init_properties): Don't set user.name or user.home if NO_GETUID defined.
* java/lang/natSystem.cc (init_properties): Don't set user.name or
	user.home if NO_GETUID defined.  Only set user.dir if getcwd
	exists.

	* include/config.h.in: Rebuilt.
	* acconfig.h (NO_GETUID): New define.
	* configure.in: Rebuilt.
	* configure.in: Define NO_GETUID in cross case.  Check for getcwd
	in native case.

From-SVN: r30964
1999-12-15 22:38:56 +00:00
Tom Tromey
c97e511d31 re GNATS libgcj/117 (_Jv_PthreadCheckMonitor test is not portable.)
* include/posix-threads.h (_Jv_PthreadCheckMonitor): Handle case
	where no recursive mutexes exist.  Fixes PR libgcj/117.

From-SVN: r30847
1999-12-09 16:57:27 +00:00
Anthony Green
d3189ab7da jvm.h: Declare many functions with __attribute__((__malloc__)).
* include/jvm.h: Declare many functions with
	__attribute__((__malloc__)).
	* gcj/javaprims.h: Ditto.

From-SVN: r30794
1999-12-06 06:33:56 +00:00
Anthony Green
38a7fbac35 Updated the thanks list.
From-SVN: r30764
1999-12-03 03:00:39 +00:00
Bryce McKinlay
aa620e4294 natString.cc (equalsIgnoreCase): return false if anotherString is null.
* java/lang/natString.cc (equalsIgnoreCase): return false if
        anotherString is null.
        * java/lang/Boolean.java (valueOf): return FALSE if argument is
        null.

From-SVN: r30763
1999-12-02 19:59:30 +00:00
Bryce McKinlay
c390b4a687 ServerSocket.java (ServerSocket): Bind to any interface if bindAddr is null.
1999-12-02  Bryce McKinlay  <bryce@albatross.co.nz>

        * libjava/java/net/ServerSocket.java (ServerSocket): Bind to any
        interface if bindAddr is null.

From-SVN: r30755
1999-12-02 10:09:24 +00:00
Tom Tromey
4cb74b7695 re GNATS libgcj/98 (pthread_mutex_init in libjava/posix-threads.cc)
* posix-threads.cc (_Jv_MutexInit): Use _Jv_PthreadGetMutex to get
	mutex to initialize.  Initialize `count' if required.
	Fixes PR libgcj/98.

From-SVN: r30725
1999-11-30 18:53:15 +00:00
Per Bothner
9b811d11de exception.cc: Remove prototype declarations for malloc and free.
1999-11-27  Per Bothner  <per@bothner.com>

	* exception.cc:  Remove prototype declarations for malloc and free.
	These clash with recent versions of glibc, which specifies `throws ()'
	when __cplusplus is defined.  Instead, #include <stdlib.h>.

From-SVN: r30709
1999-11-29 19:43:55 +00:00
Tom Tromey
93d4556218 prims.cc (_Jv_NewObjectArray): Use _Jv_GetArrayElementFromElementType.
* prims.cc (_Jv_NewObjectArray): Use
	_Jv_GetArrayElementFromElementType.
	(_Jv_NewPrimArray): Likewise.
	* java/lang/natObject.cc (clone): Use
	_Jv_GetArrayElementFromElementType instead of sizeof.
	* java/lang/natSystem.cc (arraycopy): Use
	_Jv_GetArrayElementFromElementType.
	* include/jvm.h (_Jv_GetArrayElementFromElementType): New
	function.

From-SVN: r30655
1999-11-25 00:36:51 +00:00
Bryce McKinlay
429d7c746f re GNATS java.net/57 (potential buffer overruns)
1999-11-23  Bryce McKinlay  <bryce@albatross.co.nz>

        * java/net/natPlainSocketImpl.cc: Fix potential buffer overruns in
        Exception messages. PR java.net/57.
        (bind): set SO_REUSEADDR before bind.
        * java/net/natPlainDatagramSocketImpl.cc: Fix potential buffer
        overruns. PR java.net/57.

From-SVN: r30637
1999-11-23 11:40:26 +00:00
Tom Tromey
3cf88fb4e8 sjlj jumbo patch
From-SVN: r30591
1999-11-19 19:13:42 +00:00
Tom Tromey
8cb9ab4b7e * no-threads.cc (_Jv_ThreadStart): Use JvFail and not JvAssert.
From-SVN: r30569
1999-11-18 07:32:50 +00:00
Tom Tromey
5b8c39e0aa natClass.cc (MCACHE_SIZE): Define as a power of 2 minus 1.
* java/lang/natClass.cc (MCACHE_SIZE): Define as a power of 2
	minus 1.
	(method_cache): Made larger.

From-SVN: r30568
1999-11-18 07:19:00 +00:00
Anthony Green
a21d059766 ZipFile.java: Compute the offset of the ZipEntry data correctly.
* java/util/zip/ZipFile.java: Compute the offset of the ZipEntry
        data correctly.

From-SVN: r30439
1999-11-07 08:30:31 +00:00
Tom Tromey
e4c4f09a1e * java/lang/natThread.cc (destroy): Removed incorrect comment.
From-SVN: r30423
1999-11-05 20:59:40 +00:00
Jeff Sturm
3948f9d08f boehm.cc (_Jv_GCSetInitialHeapSize): Swapped size & current.
1999-11-05  Jeff Sturm  <jsturm@sigma6.com>

	* boehm.cc (_Jv_GCSetInitialHeapSize): Swapped size & current.
	* prims.cc (parse_heap_size): Use end, not spec.  Use 1024
	multipler for `k'.

From-SVN: r30418
1999-11-05 17:34:32 +00:00
Tom Tromey
ea638d6c94 natThread.cc (stop): Removed argument name.
* java/lang/natThread.cc (stop): Removed argument name.

	* java/lang/ThreadGroup.java (ThreadGroup(int)): No longer
	`private'; now has default access.
	* Makefile.in: Rebuilt.
	* Makefile.am (java/lang/ThreadGroup.h): Removed.

From-SVN: r30417
1999-11-05 17:10:17 +00:00
Tom Tromey
397f674e7f natClass.cc (method_cache_count): Removed.
* java/lang/natClass.cc (method_cache_count): Removed.
	(_Jv_FindMethodInCache): Don't loop looking for the hash entry.
	(_Jv_AddMethodToCache): Don't loop.

From-SVN: r30397
1999-11-04 19:47:01 +00:00
Tom Tromey
7f80fbe501 configure.in: Removed `qt' threads case.
* configure.in: Removed `qt' threads case.
	* include/quick-threads.h: Removed.
	* quick-threads.cc: Removed.

From-SVN: r30393
1999-11-04 17:12:25 +00:00
Tom Tromey
16f39e241a quick-threads.h (_Jv_ThreadCancel): Removed.
* include/quick-threads.h (_Jv_ThreadCancel): Removed.
	(_Jv_ThreadDestroy): Likewise.
	* include/no-threads.h (_Jv_ThreadCancel): Removed.
	(_Jv_ThreadDestroy): Likewise.
	* include/posix-threads.h (struct _Jv_Thread_t): Removed
	`exception' field.
	(_Jv_ThreadCancel): Removed decl.
	(_Jv_ThreadDestroy): Removed.
	* posix-threads.cc (_Jv_ThreadCancel): Removed.
	(throw_cleanup): Removed.
	(really_start): Don't push or pop cleanup.
	(_Jv_ThreadInitData): Don't initialize `exception' field.
	* java/lang/Thread.java (stop): Officially unimplemented.
	* java/lang/natThread.cc (stop): Officially unimplemented.

From-SVN: r30392
1999-11-04 16:45:11 +00:00
Bryce McKinlay
8fbe2d958a posix-threads.cc: Don't include boehm-config.h.
1999-11-02  Bryce McKinlay  <bryce@albatross.co.nz>

        * posix-threads.cc: Don't include boehm-config.h. Include gcconfig.h
        instead.

From-SVN: r30365
1999-11-03 03:10:22 +00:00
Bryce McKinlay
5e4f217316 posix-threads.cc: Don't include boehm-config.h.
1999-11-02  Bryce McKinlay  <bryce@albatross.co.nz>

        * posix-threads.cc: Don't include boehm-config.h.

From-SVN: r30361
1999-11-03 02:13:40 +00:00
Tom Tromey
965fe4f16f * boehm.cc: Don't include boehm-config.h.
From-SVN: r30359
1999-11-03 01:15:40 +00:00
Tom Tromey
e40217a763 boehm.cc (_Jv_InitGC): Set GC_java_finalization.
* boehm.cc (_Jv_InitGC): Set GC_java_finalization.
	(sum_blocks): Removed.
	(_Jv_GCFreeMemory): Use GC_get_free_bytes.

From-SVN: r30335
1999-11-02 00:12:10 +00:00
Bryce McKinlay
6b5ba2ce34 PrintStream (PrintStream): Fix illegal usage of "this" before "super".
1999-11-01  Bryce McKinlay  <bryce@albatross.co.nz>

        * java/io/PrintStream (PrintStream): Fix illegal usage of "this"
          before "super".
        * java/io/OutputStreamWriter (OutputStreamWriter): ditto.
        * java/io/InputStreamReader (InputStreamReader): ditto.

From-SVN: r30300
1999-11-01 01:15:37 +00:00
Tom Tromey
b8c3c4f014 Makefile.in: Rebuilt.
* Makefile.in: Rebuilt.
	* Makefile.am (java/lang/ClassLoader.h): New target.
	* java/lang/natClassLoader.cc (_Jv_FindClass): Removed reference
	to `redirect'.

	* include/java-props.h (_Jv_Compiler_Properties): Changed
	declaration.
	* gcj/array.h (JvRunMain, _Jv_RunMain): Don't declare.
	* include/jvm.h (_Jv_GCSetInitialHeapSize,
	_Jv_GCSetMaximumHeapSize): Declare.
	(JvRunMain, _Jv_RunMain): Declare.
	(_Jv_SetMaximumHeapSize, _Jv_SetInitialHeapSize): Declare.
	* nogc.cc (_Jv_GCSetInitialHeapSize): New function.
	(_Jv_GCSetMaximumHeapSize): Likewise.
	* boehm.cc (_Jv_GCSetInitialHeapSize): New function.
	(_Jv_GCSetMaximumHeapSize): Likewise.
	* prims.cc (parse_heap_size): New function.
	(_Jv_SetInitialHeapSize): Likewise.
	(_Jv_SetMaximumHeapSize): Likewise.
	(_Jv_Compiler_Properties): New global.
	* gij.cc (help): New function.
	(version): Likewise.
	(heap_size): Likewise.
	(heap_max_size): Likewise.
	(main): Parse arguments.  Set _Jv_Compiler_Properties.
	Include <config.h>, <java-props.h>.
	(_Jv_Compiler_Properties): Removed.

From-SVN: r30133
1999-10-22 19:43:41 +00:00
Tom Tromey
4b84737d47 VMClassLoader.java (getVMClassLoader): New method.
* gnu/gcj/runtime/VMClassLoader.java (getVMClassLoader): New
	method.
	(redirect): New static field.
	* java/lang/ClassLoader.java (getSystemClassLoader): Now
	native
	(getVMClassLoader0): Removed.
	* java/lang/natClassLoader.cc (getVMClassLoader0): Removed.
	(redirect): Removed.
	(getSystemClassLoader): Implemented.

From-SVN: r30075
1999-10-18 22:57:07 +00:00
Anthony Green
6c413a50e6 ClassLoader.java (getSystemResource): Use getSystemClassLoader instead of ClassLoader.system.
* java/lang/ClassLoader.java (getSystemResource): Use
        getSystemClassLoader instead of ClassLoader.system.
        (getSystemResourceAsStream): Ditto.

        * java/lang/natClassLoader.cc (redirect): Make static and
        remove #ifdef INTERPRETER so it is always defined.
        (getVMClassLoader0): Remove #ifdef INTERPRETER so it always
        returns a VMClassLoader.

        * java/util/ResourceBundle.java (trySomeGetBundle): Create a
        PropertyResourceBundle if a properties file is found before a
        ResourceBundle class.

From-SVN: r30048
1999-10-17 03:11:50 +00:00
Tom Tromey
76ed0c0a4b gij.cc (main): Formatting fixes.
* gij.cc (main): Formatting fixes.
	(_Jv_Compiler_Properties): Define.
	* java/lang/natSystem.cc (_Jv_Environment_Properties): Don't
	declare.
	(init_properties): Set properites from _Jv_Compiler_Properties.
	* include/java-props.h (_Jv_Compiler_Properties,
	_Jv_Environment_Properties): Declare.

From-SVN: r30020
1999-10-15 16:53:41 +00:00
Tom Tromey
3ae21bfccf * include/java-props.h: Added copyright.
From-SVN: r30018
1999-10-15 15:42:26 +00:00
Anthony Green
ffccc6bee2 libtool-version: Catch up by incrementing current.
* libtool-version: Catch up by incrementing current.

        * configure.host: Disable use of GCJ_PROPERTIES for mips-tx39.
        * configure, include/config.h.in: Rebuilt.
        * acconfig.h (DISABLE_GETENV_PROPERTIES): Undefine.
        * configure.in: Added --disable-getenv-properties and new define
        `DISABLE_GETENV_PROPERTIES'.

        * prims.cc (PROCESS_GCJ_PROPERTIES): Define.
        (next_property_key): New function.
        (next_property_value): New function.
        (process_gcj_properties): New function.
        (JvRunMain): Call process_gcj_properties.
        (_JvRunMain): Ditto.

        * java/lang/natSystem.cc (init_properties): Set properties defined
        in GCJ_PROPERTIES.  Also add 1.2 style versioning properties.

        * include/java-props.h: New file.

        * java/lang/natSystem.cc (init_properties): Add new properties to
        conform with Java Product Versioning Specification.

From-SVN: r30007
1999-10-15 06:07:41 +00:00
Tom Tromey
006d4a9b37 configure: Rebuilt.
* configure: Rebuilt.
	* configure.in: Fixed test for --disable-java-net.

From-SVN: r29931
1999-10-13 00:00:35 +00:00
Tom Tromey
f2646bf2fa configure.in (GCJ): Define as "target-gcj", not "target/gcj" when building Canadian cross.
* configure.in (GCJ): Define as "target-gcj", not "target/gcj"
	when building Canadian cross.
	(NATIVE): Don't define when cross-compiling.

From-SVN: r29848
1999-10-06 23:13:37 +00:00
Tom Tromey
97cf151d27 natPlainSocketImpl.cc: Don't include headers if java.net is disabled.
* java/net/natPlainSocketImpl.cc: Don't include headers if
	java.net is disabled.

From-SVN: r29812
1999-10-04 21:37:30 +00:00
Tom Tromey
39acd93283 Makefile.in: Rebuilt.
* Makefile.in: Rebuilt.
	* Makefile.am (ZINCS): Removed.  This is defined in configure.in
	when needed, and must be left empty when not needed.

From-SVN: r29809
1999-10-04 19:09:09 +00:00