mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
| // Object.h - Header file for java.lang.Object.  -*- c++ -*-
 | |
| 
 | |
| /* Copyright (C) 1998, 1999, 2000, 2001  Free Software Foundation
 | |
| 
 | |
|    This file is part of libgcj.
 | |
| 
 | |
| This software is copyrighted work licensed under the terms of the
 | |
| Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
 | |
| details.  */
 | |
| 
 | |
| #ifndef __JAVA_LANG_OBJECT_H__
 | |
| #define __JAVA_LANG_OBJECT_H__
 | |
| 
 | |
| #pragma interface
 | |
| 
 | |
| #include <gcj/javaprims.h>
 | |
| 
 | |
| // This class is mainly here as a kludge to get G++ to allocate two
 | |
| // extra entries in each vtable.
 | |
| struct _JvObjectPrefix
 | |
| {
 | |
| protected:
 | |
|   // New ABI Compatibility Dummy, #1 and 2.
 | |
|   virtual void nacd_1 (void) {}; // This slot really contains the Class pointer.
 | |
|   // For IA64, the GC descriptor goes into the second word of the nacd1 descr.
 | |
| # ifndef __ia64__
 | |
|     virtual void nacd_2 (void) {}; // Actually the GC bitmap marking descriptor.
 | |
| # endif
 | |
| };
 | |
| 
 | |
| class java::lang::Object : public _JvObjectPrefix
 | |
| {
 | |
| protected:
 | |
|   virtual void finalize (void);
 | |
| public:
 | |
|   // Order must match order in Object.java.
 | |
|   jclass getClass (void);
 | |
|   virtual jint hashCode (void);
 | |
|   void notify (void);
 | |
|   void notifyAll (void);
 | |
|   void wait (jlong timeout, jint nanos);
 | |
|   virtual jboolean equals (jobject obj);
 | |
|   Object (void);
 | |
|   virtual jstring toString (void);
 | |
|   void wait (void);
 | |
|   void wait (jlong timeout);
 | |
| 
 | |
|   friend void _Jv_MonitorEnter (jobject obj);
 | |
|   friend void _Jv_MonitorExit (jobject obj);
 | |
|   friend void _Jv_InitializeSyncMutex (void);
 | |
|   friend void _Jv_FinalizeObject (jobject obj);
 | |
| 
 | |
| #ifdef JV_MARKOBJ_DECL
 | |
|   friend JV_MARKOBJ_DECL;
 | |
| #endif
 | |
| #ifdef JV_MARKARRAY_DECL
 | |
|   friend JV_MARKARRAY_DECL;
 | |
| #endif
 | |
| 
 | |
|   static java::lang::Class class$;
 | |
| 
 | |
| protected:
 | |
|   virtual jobject clone (void);
 | |
| 
 | |
| private:
 | |
|   // This does not actually refer to a Java object.  Instead it is a
 | |
|   // placeholder for a piece of internal data (the synchronization
 | |
|   // information).
 | |
| # ifndef JV_HASH_SYNCHRONIZATION
 | |
|     jobject sync_info;
 | |
| # endif
 | |
| 
 | |
|     // Initialize the sync_info field.  Not called with JV_HASH_SYNCHRONIZATION.
 | |
|     void sync_init (void);
 | |
| };
 | |
| 
 | |
| #endif /* __JAVA_LANG_OBJECT_H__ */
 |