diff options
author | Dalibor Topic <robilad@kaffe.org> | 2007-08-08 08:00:32 +0000 |
---|---|---|
committer | Matthias Klose <doko@gcc.gnu.org> | 2007-08-08 08:00:32 +0000 |
commit | 473210a961853103e0155332b2df87559cc63f08 (patch) | |
tree | 964d5a02b48bb86df99ae1b3278b0daa90e72c4d /libjava/java/util | |
parent | 5b6693af786130f37f0b7cebe023f8004361ff7f (diff) | |
download | gcc-473210a961853103e0155332b2df87559cc63f08.zip gcc-473210a961853103e0155332b2df87559cc63f08.tar.gz gcc-473210a961853103e0155332b2df87559cc63f08.tar.bz2 |
re PR classpath/32844 (EnumSet causes code to be miscompiled)
2007-07-31 Dalibor Topic <robilad@kaffe.org>
PR 32844
* java/util/EnumSet.java:
Made class abstract per API spec.
(size, iterator, add, addAll, clear, contains,
containsAll, remove, removeAll, retainAll) Moved
into an anonymous inner class in of(T).
(allOf, noneOf, copyOf, of, range) Made more
implementation independent.
(of(T)) return an instance of an anonymous class
implementing EmptySet.
From-SVN: r127291
Diffstat (limited to 'libjava/java/util')
-rw-r--r-- | libjava/java/util/EnumSet$1.h | 26 | ||||
-rw-r--r-- | libjava/java/util/EnumSet$2.h | 29 | ||||
-rw-r--r-- | libjava/java/util/EnumSet.h | 11 |
3 files changed, 43 insertions, 23 deletions
diff --git a/libjava/java/util/EnumSet$1.h b/libjava/java/util/EnumSet$1.h index 55e1c91..3e247ec 100644 --- a/libjava/java/util/EnumSet$1.h +++ b/libjava/java/util/EnumSet$1.h @@ -6,23 +6,25 @@ #pragma interface -#include <java/lang/Object.h> +#include <java/util/EnumSet.h> -class java::util::EnumSet$1 : public ::java::lang::Object +class java::util::EnumSet$1 : public ::java::util::EnumSet { public: // actually package-private - EnumSet$1(::java::util::EnumSet *); -public: - jboolean hasNext(); - ::java::lang::Enum * EnumSet$1$next(); - void remove(); - ::java::lang::Object * next(); -public: // actually package-private - jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) next__; - jint count; - ::java::util::EnumSet * this$0; + EnumSet$1(); public: + jboolean EnumSet$1$add(::java::lang::Enum *); + jboolean addAll(::java::util::Collection *); + void clear(); + jboolean contains(::java::lang::Object *); + jboolean containsAll(::java::util::Collection *); + ::java::util::Iterator * iterator(); + jboolean remove(::java::lang::Object *); + jboolean removeAll(::java::util::Collection *); + jboolean retainAll(::java::util::Collection *); + jint size(); + jboolean add(::java::lang::Object *); static ::java::lang::Class class$; }; diff --git a/libjava/java/util/EnumSet$2.h b/libjava/java/util/EnumSet$2.h new file mode 100644 index 0000000..e80b978 --- /dev/null +++ b/libjava/java/util/EnumSet$2.h @@ -0,0 +1,29 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_EnumSet$2__ +#define __java_util_EnumSet$2__ + +#pragma interface + +#include <java/lang/Object.h> + +class java::util::EnumSet$2 : public ::java::lang::Object +{ + +public: // actually package-private + EnumSet$2(::java::util::EnumSet$1 *); +public: + jboolean hasNext(); + ::java::lang::Enum * EnumSet$2$next(); + void remove(); + ::java::lang::Object * next(); +public: // actually package-private + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) next__; + jint count; + ::java::util::EnumSet$1 * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_util_EnumSet$2__ diff --git a/libjava/java/util/EnumSet.h b/libjava/java/util/EnumSet.h index 200868a..5497e30 100644 --- a/libjava/java/util/EnumSet.h +++ b/libjava/java/util/EnumSet.h @@ -17,16 +17,6 @@ public: // actually package-private EnumSet(); public: virtual ::java::util::EnumSet * EnumSet$clone(); - virtual jint size(); - virtual ::java::util::Iterator * iterator(); - virtual jboolean EnumSet$add(::java::lang::Enum *); - virtual jboolean addAll(::java::util::Collection *); - virtual void clear(); - virtual jboolean contains(::java::lang::Object *); - virtual jboolean containsAll(::java::util::Collection *); - virtual jboolean remove(::java::lang::Object *); - virtual jboolean removeAll(::java::util::Collection *); - virtual jboolean retainAll(::java::util::Collection *); static ::java::util::EnumSet * allOf(::java::lang::Class *); static ::java::util::EnumSet * noneOf(::java::lang::Class *); static ::java::util::EnumSet * copyOf(::java::util::EnumSet *); @@ -40,7 +30,6 @@ public: static ::java::util::EnumSet * of(::java::lang::Enum *, JArray< ::java::lang::Enum * > *); static ::java::util::EnumSet * range(::java::lang::Enum *, ::java::lang::Enum *); virtual ::java::lang::Object * clone(); - virtual jboolean add(::java::lang::Object *); private: static const jlong serialVersionUID = 4782406773684236311LL; public: // actually package-private |