This is the mail archive of the kawa@sources.redhat.com mailing list for the Kawa project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

module-export vs. define-simple-class


The define-simple-class in the code below produces an invalid .class
file.  If you module-export the class (or remove module-export
entirely), everything is fine.

One way to see that the class is invalid is to run jode on it:

unix% jode BrokenClass
Jode (c) 1998-2001 Jochen Hoenicke <jochen@gnu.org>
BrokenClass
locals:[0:LBrokenClass;,1:?], stack:[]
0_2c84d9: aload 1
1_c5c3ac: getstatic Ljava/lang/Boolean; FALSE Ljava/lang/Boolean;
4_1b16e52: if_acmpeq 11
7_1c1ea29: aload 1
8_1f436f5: goto 15
11_4413ee: aload 0
12_1786e64: getfield LBrokenClass; var2 Ljava/lang/Object;
15_197a37c: areturn
jode.jvm.VerifyException: 0_2c84d9: aload 1
        at jode.jvm.CodeVerifier.modelEffect(CodeVerifier.java:517)
        at jode.jvm.CodeVerifier.doVerify(CodeVerifier.java:1033)
        at jode.jvm.CodeVerifier.verify(CodeVerifier.java:1102)
        at jode.decompiler.MethodAnalyzer.analyze(MethodAnalyzer.java:610)
        at jode.decompiler.ClassAnalyzer.analyze(ClassAnalyzer.java:359)
        at jode.decompiler.ClassAnalyzer.dumpJavaFile(ClassAnalyzer.java:624)
        at jode.decompiler.ClassAnalyzer.dumpJavaFile(ClassAnalyzer.java:613)
        at jode.decompiler.Main.decompileClass(Main.java:184)
        at jode.decompiler.Main.decompile(Main.java:376)
        at jode.decompiler.Main.main(Main.java:203)
jode.AssertError: Verification error
        at jode.decompiler.MethodAnalyzer.analyze(MethodAnalyzer.java:613)
        at jode.decompiler.ClassAnalyzer.analyze(ClassAnalyzer.java:359)
        at jode.decompiler.ClassAnalyzer.dumpJavaFile(ClassAnalyzer.java:624)
        at jode.decompiler.ClassAnalyzer.dumpJavaFile(ClassAnalyzer.java:613)
        at jode.decompiler.Main.decompileClass(Main.java:184)
        at jode.decompiler.Main.decompile(Main.java:376)
        at jode.decompiler.Main.main(Main.java:203)


Regards,
Chris Dean

(module-static #t)
(module-name <BrokenClassSupport>)

(module-export func)
; (module-export <BrokenClass>)

(define (func)
  'no-op)

(define-simple-class <BrokenClass> ()
  (var)
  (var2)
  ((method)
   (or var var2)))


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]