Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 78773 Details for
Bug 204002
AIOB when enabling CLDC 1.1
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Proposed fix
patch_204002.txt (text/plain), 3.27 KB, created by
Olivier Thomann
on 2007-09-19 13:11:16 EDT
(
hide
)
Description:
Proposed fix
Filename:
MIME Type:
Creator:
Olivier Thomann
Created:
2007-09-19 13:11:16 EDT
Size:
3.27 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.core >Index: compiler/org/eclipse/jdt/internal/compiler/codegen/CodeStream.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/codegen/CodeStream.java,v >retrieving revision 1.156 >diff -u -r1.156 CodeStream.java >--- compiler/org/eclipse/jdt/internal/compiler/codegen/CodeStream.java 13 Sep 2007 18:00:47 -0000 1.156 >+++ compiler/org/eclipse/jdt/internal/compiler/codegen/CodeStream.java 19 Sep 2007 17:10:31 -0000 >@@ -1632,9 +1632,6 @@ > * Macro for building a class descriptor object > */ > public void generateClassLiteralAccessForType(TypeBinding accessedType, FieldBinding syntheticFieldBinding) { >- BranchLabel endLabel; >- ExceptionLabel anyExceptionHandler; >- int saveStackSize; > if (accessedType.isBaseType() && accessedType != TypeBinding.NULL) { > this.getTYPE(accessedType.id); > return; >@@ -1644,7 +1641,7 @@ > // generation using the new ldc_w bytecode > this.ldc(accessedType); > } else { >- endLabel = new BranchLabel(this); >+ BranchLabel endLabel = new BranchLabel(this); > if (syntheticFieldBinding != null) { // non interface case > this.getstatic(syntheticFieldBinding); > this.dup(); >@@ -1663,8 +1660,8 @@ > > // Wrap the code in an exception handler to convert a ClassNotFoundException into a NoClassDefError > >- anyExceptionHandler = new ExceptionLabel(this, TypeBinding.NULL /*represents ClassNotFoundException*/); >- anyExceptionHandler.placeStart(); >+ ExceptionLabel classNotFoundExceptionHandler = new ExceptionLabel(this, TypeBinding.NULL /*represents ClassNotFoundException*/); >+ classNotFoundExceptionHandler.placeStart(); > this.ldc(accessedType == TypeBinding.NULL ? "java.lang.Object" : String.valueOf(accessedType.constantPoolName()).replace('/', '.')); //$NON-NLS-1$ > this.invokeClassForName(); > >@@ -1685,23 +1682,21 @@ > /* We need to protect the runtime code from binary inconsistencies > in case the accessedType is missing, the ClassNotFoundException has to be converted > into a NoClassDefError(old ex message), we thus need to build an exception handler for this one. */ >- anyExceptionHandler.placeEnd(); >+ classNotFoundExceptionHandler.placeEnd(); > > if (syntheticFieldBinding != null) { // non interface case > this.dup(); > this.putstatic(syntheticFieldBinding); > } > this.goto_(endLabel); >- >- >+ > // Generate the body of the exception handler >- saveStackSize = stackDepth; >- stackDepth = 1; > /* ClassNotFoundException on stack -- the class literal could be doing more things > on the stack, which means that the stack may not be empty at this point in the > above code gen. So we save its state and restart it from 1. */ > >- anyExceptionHandler.place(); >+ this.pushExceptionOnStack(TypeBinding.NULL);/*represents ClassNotFoundException*/ >+ classNotFoundExceptionHandler.place(); > > // Transform the current exception, and repush and throw a > // NoClassDefFoundError(ClassNotFound.getMessage()) >@@ -1716,7 +1711,6 @@ > // Send the constructor taking a message string as an argument > this.invokeNoClassDefFoundErrorStringConstructor(); > this.athrow(); >- stackDepth = saveStackSize; > endLabel.place(); > } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 204002
: 78773 |
78779