From: aclement Date: Thu, 8 Apr 2004 10:46:58 +0000 (+0000) Subject: Fix for Bugzilla Bug 57436 X-Git-Tag: Root_ajdt_support~24 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=b0d32cafba6241023d1efdc343a2744a5e25a00d;p=aspectj.git Fix for Bugzilla Bug 57436 Java 1.5 fails to run classes produced by ajc [ Not the perfect fix, but passes all the tests I can find - lets see what the build machine thinks of it...] --- diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java index 27db10c3e..36d270870 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java @@ -23,6 +23,7 @@ import org.eclipse.jdt.internal.compiler.ClassFile; import org.eclipse.jdt.internal.compiler.CompilationResult; //import org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration; import org.eclipse.jdt.internal.compiler.ast.Clinit; +import org.eclipse.jdt.internal.compiler.ast.MethodDeclaration; //import org.eclipse.jdt.internal.compiler.ast.ConstructorDeclaration; import org.eclipse.jdt.internal.compiler.ast.TypeDeclaration; import org.eclipse.jdt.internal.compiler.codegen.CodeStream; @@ -294,8 +295,15 @@ public class AspectDeclaration extends TypeDeclaration { int codeAttributeOffset = classFile.contentsOffset; classFile.generateCodeAttributeHeader(); CodeStream codeStream = classFile.codeStream; - codeStream.init(classFile); - codeStream.initializeMaxLocals(methodBinding); + + // Use reset() rather than init() + // XXX We need a scope to keep reset happy, initializerScope is *not* the right one, but it works ! +// codeStream.init(classFile); +// codeStream.initializeMaxLocals(methodBinding); + MethodDeclaration md = AstUtil.makeMethodDeclaration(methodBinding); + md.scope = initializerScope; + codeStream.reset(md,classFile); + // body starts here gen.generate(codeStream); // body ends here