diff options
Diffstat (limited to 'org.aspectj.ajdt.core')
-rw-r--r-- | org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AspectDeclaration.java | 12 |
1 files changed, 10 insertions, 2 deletions
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 |