summaryrefslogtreecommitdiff
path: root/libjava/defineclass.cc
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2002-12-05 07:43:45 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2002-12-05 07:43:45 +0000
commit7ae1133813dccee1034e8558dabadd99bbd0ad52 (patch)
treec34b3facbe8521cce08d485b456e9ded07c686e8 /libjava/defineclass.cc
parent4bcd36527fc31f0e2bbe6d2561fe2e72754ecd12 (diff)
downloadgcc-7ae1133813dccee1034e8558dabadd99bbd0ad52.tar.gz
* java/lang/Class.h (_Jv_SetVTableEntries): Updated declaration.
* resolve.cc: Don't include AbstractMethodError.h. (_Jv_abstractMethodError): Removed. * defineclass.cc (handleMethodsBegin): Initialize method index to -1. * java/lang/natClass.cc (_Jv_LayoutVTableMethods): Don't set method index for "new" final method. (_Jv_SetVTableEntries): Compare index against -1 instead of using isVirtualMethod. Added `flags' argument. (_Jv_MakeVTable): Throw exception for abstract method in concrete class. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@59847 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/defineclass.cc')
-rw-r--r--libjava/defineclass.cc14
1 files changed, 9 insertions, 5 deletions
diff --git a/libjava/defineclass.cc b/libjava/defineclass.cc
index 6a250dadda6..dc350028cdd 100644
--- a/libjava/defineclass.cc
+++ b/libjava/defineclass.cc
@@ -1184,15 +1184,17 @@ void _Jv_ClassReader::handleFieldsEnd ()
void
_Jv_ClassReader::handleMethodsBegin (int count)
{
- def->methods = (_Jv_Method*)
- _Jv_AllocBytes (sizeof (_Jv_Method)*count);
+ def->methods = (_Jv_Method *) _Jv_AllocBytes (sizeof (_Jv_Method) * count);
def->interpreted_methods
= (_Jv_MethodBase **) _Jv_AllocBytes (sizeof (_Jv_MethodBase *)
* count);
for (int i = 0; i < count; i++)
- def->interpreted_methods[i] = 0;
+ {
+ def->interpreted_methods[i] = 0;
+ def->methods[i].index = (_Jv_ushort) -1;
+ }
def->method_count = count;
}
@@ -1376,12 +1378,14 @@ throw_internal_error (char *msg)
throw new java::lang::InternalError (JvNewStringLatin1 (msg));
}
-static void throw_incompatible_class_change_error (jstring msg)
+static void
+throw_incompatible_class_change_error (jstring msg)
{
throw new java::lang::IncompatibleClassChangeError (msg);
}
-static void throw_class_circularity_error (jstring msg)
+static void
+throw_class_circularity_error (jstring msg)
{
throw new java::lang::ClassCircularityError (msg);
}