Merged gcj-eclipse branch to trunk.
From-SVN: r120621
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
|
||||
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
|
||||
|
||||
#ifndef __java_lang_ref_PhantomReference__
|
||||
#define __java_lang_ref_PhantomReference__
|
||||
|
||||
#pragma interface
|
||||
|
||||
#include <java/lang/ref/Reference.h>
|
||||
|
||||
class java::lang::ref::PhantomReference : public ::java::lang::ref::Reference
|
||||
{
|
||||
|
||||
public:
|
||||
PhantomReference(::java::lang::Object *, ::java::lang::ref::ReferenceQueue *);
|
||||
virtual ::java::lang::Object * get();
|
||||
static ::java::lang::Class class$;
|
||||
};
|
||||
|
||||
#endif // __java_lang_ref_PhantomReference__
|
||||
@@ -0,0 +1,45 @@
|
||||
|
||||
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
|
||||
|
||||
#ifndef __java_lang_ref_Reference__
|
||||
#define __java_lang_ref_Reference__
|
||||
|
||||
#pragma interface
|
||||
|
||||
#include <java/lang/Object.h>
|
||||
extern "Java"
|
||||
{
|
||||
namespace gnu
|
||||
{
|
||||
namespace gcj
|
||||
{
|
||||
class RawData;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class java::lang::ref::Reference : public ::java::lang::Object
|
||||
{
|
||||
|
||||
public: // actually package-private
|
||||
Reference(::java::lang::Object *);
|
||||
Reference(::java::lang::Object *, ::java::lang::ref::ReferenceQueue *);
|
||||
private:
|
||||
void create(::java::lang::Object *);
|
||||
public:
|
||||
virtual ::java::lang::Object * get();
|
||||
virtual void clear();
|
||||
virtual jboolean isEnqueued();
|
||||
virtual jboolean enqueue();
|
||||
public: // actually package-private
|
||||
::gnu::gcj::RawData * __attribute__((aligned(__alignof__( ::java::lang::Object)))) referent;
|
||||
::gnu::gcj::RawData * copy;
|
||||
jboolean cleared;
|
||||
::java::lang::ref::ReferenceQueue * queue;
|
||||
::java::lang::ref::Reference * nextOnQueue;
|
||||
static ::java::lang::Object * lock;
|
||||
public:
|
||||
static ::java::lang::Class class$;
|
||||
};
|
||||
|
||||
#endif // __java_lang_ref_Reference__
|
||||
@@ -1,5 +1,5 @@
|
||||
/* java.lang.ref.Reference
|
||||
Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
|
||||
Copyright (C) 1999, 2002, 2003, 2006 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@@ -70,7 +70,7 @@ package java.lang.ref;
|
||||
* @author Jochen Hoenicke
|
||||
* @see java.util.WeakHashtable
|
||||
*/
|
||||
public abstract class Reference
|
||||
public abstract class Reference<T>
|
||||
{
|
||||
/**
|
||||
* The underlying object. This field is handled in a special way by
|
||||
@@ -105,7 +105,7 @@ public abstract class Reference
|
||||
* The queue this reference is registered on. This is null, if this
|
||||
* wasn't registered to any queue or reference was already enqueued.
|
||||
*/
|
||||
ReferenceQueue queue;
|
||||
ReferenceQueue<? super T> queue;
|
||||
|
||||
/**
|
||||
* Link to the next entry on the queue. If this is null, this
|
||||
@@ -129,7 +129,7 @@ public abstract class Reference
|
||||
* class in a different package.
|
||||
* @param referent the object we refer to.
|
||||
*/
|
||||
Reference(Object ref)
|
||||
Reference(T ref)
|
||||
{
|
||||
create (ref);
|
||||
}
|
||||
@@ -142,7 +142,7 @@ public abstract class Reference
|
||||
* @param q the reference queue to register on.
|
||||
* @exception NullPointerException if q is null.
|
||||
*/
|
||||
Reference(Object ref, ReferenceQueue q)
|
||||
Reference(T ref, ReferenceQueue<? super T> q)
|
||||
{
|
||||
if (q == null)
|
||||
throw new NullPointerException();
|
||||
@@ -153,20 +153,14 @@ public abstract class Reference
|
||||
/**
|
||||
* Notifies the VM that a new Reference has been created.
|
||||
*/
|
||||
private native void create (Object o);
|
||||
private native void create (T o);
|
||||
|
||||
/**
|
||||
* Returns the object, this reference refers to.
|
||||
* @return the object, this reference refers to, or null if the
|
||||
* reference was cleared.
|
||||
*/
|
||||
public Object get()
|
||||
{
|
||||
synchronized (lock)
|
||||
{
|
||||
return referent;
|
||||
}
|
||||
}
|
||||
public native T get();
|
||||
|
||||
/**
|
||||
* Clears the reference, so that it doesn't refer to its object
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
|
||||
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
|
||||
|
||||
#ifndef __java_lang_ref_ReferenceQueue__
|
||||
#define __java_lang_ref_ReferenceQueue__
|
||||
|
||||
#pragma interface
|
||||
|
||||
#include <java/lang/Object.h>
|
||||
|
||||
class java::lang::ref::ReferenceQueue : public ::java::lang::Object
|
||||
{
|
||||
|
||||
public:
|
||||
ReferenceQueue();
|
||||
virtual ::java::lang::ref::Reference * poll();
|
||||
public: // actually package-private
|
||||
virtual jboolean enqueue(::java::lang::ref::Reference *);
|
||||
private:
|
||||
::java::lang::ref::Reference * dequeue();
|
||||
public:
|
||||
virtual ::java::lang::ref::Reference * remove(jlong);
|
||||
virtual ::java::lang::ref::Reference * remove();
|
||||
private:
|
||||
::java::lang::ref::Reference * __attribute__((aligned(__alignof__( ::java::lang::Object)))) first;
|
||||
::java::lang::Object * lock;
|
||||
public:
|
||||
static ::java::lang::Class class$;
|
||||
};
|
||||
|
||||
#endif // __java_lang_ref_ReferenceQueue__
|
||||
@@ -0,0 +1,21 @@
|
||||
|
||||
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
|
||||
|
||||
#ifndef __java_lang_ref_SoftReference__
|
||||
#define __java_lang_ref_SoftReference__
|
||||
|
||||
#pragma interface
|
||||
|
||||
#include <java/lang/ref/Reference.h>
|
||||
|
||||
class java::lang::ref::SoftReference : public ::java::lang::ref::Reference
|
||||
{
|
||||
|
||||
public:
|
||||
SoftReference(::java::lang::Object *);
|
||||
SoftReference(::java::lang::Object *, ::java::lang::ref::ReferenceQueue *);
|
||||
virtual ::java::lang::Object * get();
|
||||
static ::java::lang::Class class$;
|
||||
};
|
||||
|
||||
#endif // __java_lang_ref_SoftReference__
|
||||
@@ -0,0 +1,20 @@
|
||||
|
||||
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
|
||||
|
||||
#ifndef __java_lang_ref_WeakReference__
|
||||
#define __java_lang_ref_WeakReference__
|
||||
|
||||
#pragma interface
|
||||
|
||||
#include <java/lang/ref/Reference.h>
|
||||
|
||||
class java::lang::ref::WeakReference : public ::java::lang::ref::Reference
|
||||
{
|
||||
|
||||
public:
|
||||
WeakReference(::java::lang::Object *);
|
||||
WeakReference(::java::lang::Object *, ::java::lang::ref::ReferenceQueue *);
|
||||
static ::java::lang::Class class$;
|
||||
};
|
||||
|
||||
#endif // __java_lang_ref_WeakReference__
|
||||
@@ -1,6 +1,6 @@
|
||||
// natReference.cc - Native code for References
|
||||
|
||||
/* Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation
|
||||
/* Copyright (C) 2001, 2002, 2003, 2005, 2006 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
@@ -368,3 +368,10 @@ void
|
||||
add_to_hash (this);
|
||||
}
|
||||
}
|
||||
|
||||
::java::lang::Object *
|
||||
::java::lang::ref::Reference::get()
|
||||
{
|
||||
JvSynchronize sync (lock);
|
||||
return referent;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user