diff options
Diffstat (limited to 'runtime/class_linker.cc')
| -rw-r--r-- | runtime/class_linker.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc index 38dd7612f2..ccf431969a 100644 --- a/runtime/class_linker.cc +++ b/runtime/class_linker.cc @@ -5523,6 +5523,10 @@ bool ClassLinker::LinkSuperClass(Handle<mirror::Class> klass) { return false; } // Verify + if (klass->IsInterface() && super != GetClassRoot(kJavaLangObject)) { + ThrowClassFormatError(klass.Get(), "Interfaces must have java.lang.Object as superclass"); + return false; + } if (super->IsFinal()) { ThrowVerifyError(klass.Get(), "Superclass %s of %s is declared final", |