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 56105 Details for
Bug 168665
[1.6][compiler] AIOOBE during stack map frame generation
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Proposed fix
patch_168665.txt (text/plain), 3.70 KB, created by
Olivier Thomann
on 2006-12-22 15:28:03 EST
(
hide
)
Description:
Proposed fix
Filename:
MIME Type:
Creator:
Olivier Thomann
Created:
2006-12-22 15:28:03 EST
Size:
3.70 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.core >Index: compiler/org/eclipse/jdt/internal/compiler/codegen/StackMapFrameCodeStream.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/codegen/StackMapFrameCodeStream.java,v >retrieving revision 1.13 >diff -u -r1.13 StackMapFrameCodeStream.java >--- compiler/org/eclipse/jdt/internal/compiler/codegen/StackMapFrameCodeStream.java 23 Aug 2006 16:32:56 -0000 1.13 >+++ compiler/org/eclipse/jdt/internal/compiler/codegen/StackMapFrameCodeStream.java 22 Dec 2006 16:15:49 -0000 >@@ -768,7 +768,8 @@ > this.currentFrame.stackItems[this.currentFrame.numberOfStackItems - 1] = new VerificationTypeInfo(fieldBinding.type); > } > private VerificationTypeInfo getLocal(int resolvedPosition, StackMapFrame frame) { >- final VerificationTypeInfo verificationTypeInfo = frame.locals[resolvedPosition]; >+ VerificationTypeInfo verificationTypeInfo = frame.locals[resolvedPosition]; >+ > if (verificationTypeInfo == null) { > return null; > } >@@ -1041,7 +1042,7 @@ > frame.putLocal(resolvedPosition, new VerificationTypeInfo(TypeBinding.INT)); > resolvedPosition++; > } >- >+ > // take into account the synthetic parameters > if (methodBinding.declaringClass.isNestedType()) { > ReferenceBinding enclosingInstanceTypes[]; >@@ -1053,6 +1054,23 @@ > resolvedPosition++; > } > } >+ >+ TypeBinding[] arguments; >+ if ((arguments = methodBinding.parameters) != null) { >+ for (int i = 0, max = arguments.length; i < max; i++) { >+ final TypeBinding typeBinding = arguments[i]; >+ frame.putLocal(resolvedPosition, new VerificationTypeInfo(typeBinding)); >+ switch(typeBinding.id) { >+ case TypeIds.T_double : >+ case TypeIds.T_long : >+ resolvedPosition += 2; >+ break; >+ default: >+ resolvedPosition++; >+ } >+ } >+ } >+ > SyntheticArgumentBinding syntheticArguments[]; > if ((syntheticArguments = methodBinding.declaringClass.syntheticOuterLocalVariables()) != null) { > for (int i = 0, max = syntheticArguments.length; i < max; i++) { >@@ -1068,21 +1086,37 @@ > } > } > } >+ } else { >+ TypeBinding[] arguments; >+ if ((arguments = methodBinding.parameters) != null) { >+ for (int i = 0, max = arguments.length; i < max; i++) { >+ final TypeBinding typeBinding = arguments[i]; >+ frame.putLocal(resolvedPosition, new VerificationTypeInfo(typeBinding)); >+ switch(typeBinding.id) { >+ case TypeIds.T_double : >+ case TypeIds.T_long : >+ resolvedPosition += 2; >+ break; >+ default: >+ resolvedPosition++; >+ } >+ } >+ } > } >- } >- >- TypeBinding[] arguments; >- if ((arguments = methodBinding.parameters) != null) { >- for (int i = 0, max = arguments.length; i < max; i++) { >- final TypeBinding typeBinding = arguments[i]; >- frame.putLocal(resolvedPosition, new VerificationTypeInfo(typeBinding)); >- switch(typeBinding.id) { >- case TypeIds.T_double : >- case TypeIds.T_long : >- resolvedPosition += 2; >- break; >- default: >- resolvedPosition++; >+ } else { >+ TypeBinding[] arguments; >+ if ((arguments = methodBinding.parameters) != null) { >+ for (int i = 0, max = arguments.length; i < max; i++) { >+ final TypeBinding typeBinding = arguments[i]; >+ frame.putLocal(resolvedPosition, new VerificationTypeInfo(typeBinding)); >+ switch(typeBinding.id) { >+ case TypeIds.T_double : >+ case TypeIds.T_long : >+ resolvedPosition += 2; >+ break; >+ default: >+ resolvedPosition++; >+ } > } > } > }
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 168665
:
55959
| 56105 |
56562